// Author:Arturia #include #include #include #include #include #include #include #include #include #include #include #include #include #define rep(x,a,b) for (int x=a;x<=(int)b;x++) #define drp(x,a,b) for (int x=a;x>=(int)b;x--) #define cross(x,a) for (int x=hd[a];~x;x=nx[x]) #define ll long long #define inf (1<<29) #define PII pair #define PDD pair #define mk(a,b) make_pair(a,b) #define fs first #define sc second #define pb push_back #define VI vector #define VS vector #define MC(a,b) memcpy(a,b,sizeof b) #define MS(a,b) memset(a,b,sizeof a) using namespace std; inline ll rd(){ ll x=0;int ch=getchar(),f=1; while (!isdigit(ch)&&(ch!='-')&&(ch!=EOF)) ch=getchar(); if (ch=='-'){f=-1;ch=getchar();} while (isdigit(ch)){x=(x<<1)+(x<<3)+ch-'0';ch=getchar();} return x*f; } inline void rt(ll x){ if (x<0) putchar('-'),x=-x; if (x>=10) rt(x/10),putchar(x%10+'0'); else putchar(x+'0'); } const int maxn=50005; struct plant{ int l,r,a,b,c; bool operator <(const plant&x)const{return r==x.r?l