#include using namespace std; typedef long long LL; const int N=100010; LL f[1010][12]; LL a[N],b[N],k[N],p[N]; int main() { int n,m; while(scanf("%d %d", &n, &m) != EOF) { LL maxa=0,maxb=0; for(int i=0;i>a[i]>>b[i]; maxa=max(maxa,b[i]); } for(int i=0;i>k[i]>>p[i]; maxb=max(maxb,p[i]); } if(maxb<=maxa) { printf("-1\n"); continue; } memset(f,0x3f3f3f3f,sizeof f); for(int i=0;i<=10;i++) { for(int w=1;w<1005;w++) { for(int j=0;j=w)f[w][i]=min(f[w][i],k[j]); else f[w][i]=min(f[w][i],f[w-res][i]+k[j]); } } } LL res=0; for(int i=0;i