#include<bits/stdc++.h>
#define ll long long
using namespace std;
vector <pair<ll, ll>> dish;
vector<pair<ll, pair<ll, ll>>> clan;
bool check(ll m)
{
ll i=0, j=0;
while(i<dish.size() && j<clan.size())
{
if(dish[i].first<clan[j].first)
{
m=m-dish[j].second;
i++;
if(m<0)
return false;
}
else
{
if(m>=clan[j].second.first)
{
m=m+clan[j].second.second;
}
j++;
}
}
while(i<dish.size())
{
m=m-dish[i].second;
i++;
if(m<0)
return false;
}
return (m>=1);
}
int main()
{
ll t;
while(t--)
{
dish.clear();
clan.clear();
ll X;
cin>>X;
ll n_dish;
cin>>n_dish;
ll t=1;
for(ll i=0; i<n_dish; i++)
{
ll x,y;
cin>>x>>y;
dish.push_back(make_pair(x, y));
t=t+y;
}
ll n_clans;
cin>>n_clans;
for(ll i=0; i<n_clans; i++)
{
ll p, q, r;
cin>>p>>q>>r;
clan.push_back(make_pair(p, make_pair(q, r)));
}
sort(dish.begin(), dish.end());
sort(clan.begin(), clan.end());
ll l=0;
ll r=t;
ll ans=r;
while(l<=r)
{
ll m=l+(r-l)/2;
if(check(m))
{
ans=min(ans,m);
r=m-1;
}
else
l=m+1;
}
cout<<ans<<endl;
}
return 0;
}