#include #include using namespace std; int a[11][1010],maxa[11]; int cun[100010][2],va[1002],p[1002]; bool pan[11]; int n,m; inline bool scan(){ if(scanf("%d%d",&n,&m)==EOF)return 0; memset(pan,0,sizeof(pan)); for(int i=1;i<=n;i++){ int aa,b; scanf("%d%d",&aa,&b); if(pan[b]) maxa[b]=maxa[b]>aa?maxa[b]:aa; else{ pan[b]=1; maxa[b]=aa; } cun[i][0]=aa;cun[i][1]=b; } for(int i=1;i<=m;i++){ scanf("%d%d",&va[i],&p[i]); p[i]++; } return 1; } inline void suan(){ for(int i=0;i<=10;i++) if(pan[i]){ memset(a[i],0x3f,4*(maxa[i]+2)); a[i][0]=0; } for(int i=0;i<=10;i++) if(!pan[i]) for(int j=1;j<=m;j++)p[j]--; else{ int kill=0; for(int j=1;j<=m;j++){ p[j]--; if(p[j]<=0){ kill++;continue; } for(int k=1;k<=p[j]&&k<=maxa[i];k++) a[i][k]=va[j]