#include #include #include #include #include #include #include using namespace std; const int N=3E5+5; const int M=1E6+5; struct map{ int l,x,p,r; }Q[N],a[N]; int n,q,k,m,ans[N],tr[M],last; int cmp1(const map&a,const map&b) { return a.r>b.r; } int cmp2(const map&a,const map&b) { return a.x>b.x; } void add(int x) { for (;x>n>>q) { memset(ans,0,sizeof(ans)); memset(tr,0,sizeof(tr)); m=0; for (int i=1;i<=n;i++) scanf("%d%d",&a[i].l,&a[i].r); for (int i=1;i<=q;i++) { scanf("%d",&k); last=0; for (int j=1;j<=k;j++) { m++; scanf("%d",&Q[m].x); Q[m].l=last; Q[m].p=i; last=Q[m].x; } } sort(a+1,a+n+1,cmp1); k=1; sort(Q+1,Q+m+1,cmp2); for (int i=1;i<=m;i++) { for (;k<=n&&a[k].r>=Q[i].x;k++) add(a[k].l); ans[Q[i].p]+=get(Q[i].x)-get(Q[i].l); } for (int i=1;i<=q;i++) printf("%d\n",ans[i]); } }