#include using namespace std; #define INF 0x3f3f3f3f #define ll long long const int cost = 1000+5; int mdzzz[11][cost]; struct point { int a,b; } kkk1[100005]; struct point1 { int k,p; } kkk[1005]; int main() { int i, j; int n, m; while(scanf("%d%d",&n,&m)!=EOF) { for(int i=0; i < n; i++) scanf("%d%d",&kkk1[i].a,&kkk1[i].b); for(int i=0; i < m; i++) scanf("%d%d",&kkk[i].k,&kkk[i].p); memset(mdzzz, INF, sizeof mdzzz); for(int i=0; i<11; i++) mdzzz[i][0]=0; for(i=0; i<=10; i++) { for(j=0; j<=m; j++) { if(kkk[j].p-i<=0) continue; for(int k=0; k<=1000; k++) { if(mdzzz[i][k] == INF) continue; if(k+kkk[j].p-i > 1000) mdzzz[i][1000] = min(mdzzz[i][1000], mdzzz[i][k]+kkk[j].k); else mdzzz[i][k+kkk[j].p-i]=min(mdzzz[i][k+kkk[j].p-i],mdzzz[i][k]+kkk[j].k); } } int temp = INF; for(j = 1000; j > 0; j--) { mdzzz[i][j] = min(mdzzz[i][j], temp); temp = min( temp, mdzzz[i][j]); } } int fff=0; ll result=0; for(int i=0; i