#include<stdio.h>
#include<algorithm>
using namespace std;
int g[110];
int h[110];
int p[110];
int q[110];
int dp2[11000];
int dp3[110][110];
int dp[110][110];
int main(){
	int a,b,c,d,e,f;
	scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f);
	for(int i=0;i<b;i++){
		scanf("%d%d",g+i,h+i);
	}
	for(int i=0;i<d;i++)scanf("%d%d",p+i,q+i);
	for(int i=0;i<d;i++){
		for(int j=0;j<10100;j++){
			dp2[j+q[i]]=max(dp2[j+q[i]],dp2[j]+p[i]);
		}
	}
	for(int i=0;i<110;i++)for(int j=0;j<110;j++)dp3[i][j]=-999999999;
	dp3[0][0]=0;
	for(int i=0;i<b;i++){
		for(int j=b-1;j>=0;j--){
			for(int k=0;k<110;k++){
				if(dp3[j][k]<0)continue;
				if(k+g[i]<110){
					dp3[j+1][k+g[i]]=max(dp3[j+1][k+g[i]],dp3[j][k]+h[i]);
				}
			}
		}
	}
	bool ok=false;
	for(int i=1;i<=a;i++)dp3[c][i]=max(dp3[c][i],dp3[c][i-1]);
	for(int i=0;i<=a;i++)if(dp3[c][i]>=0)ok=true;
	if(!ok){printf("-1\n");return 0;}
	for(int i=0;i<110;i++)for(int j=0;j<110;j++)dp[i][j]=-999999999;
	dp[0][a]=0;
	for(int i=0;i<f;i++){
		for(int j=0;j<=a;j++){
			if(dp[i][j]<0)continue;
			for(int k=0;k<=min(j+e,a);k++){
				if(dp3[c][k]>=0){
					dp[i+1][min(j+e,a)-k]=max(dp[i+1][min(j+e,a)-k],dp[i][j]+dp2[dp3[c][k]]);
				}
			}
		}
	}
	int ret=-999999999;
	for(int i=0;i<=a;i++)ret=max(ret,dp[f][i]);
	if(ret<0){
		printf("-1\n");return 0;
	}
	printf("%d\n",ret);
}