// Source: https://usaco.guide/general/io
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
#define int long long
using orderedset = tree<int,null_type,less<int>,rb_tree_tag,tree_order_statistics_node_update>;
signed main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int m,n;cin>>m>>n;
orderedset s;
vector<vector<int>> v(n,vector<int>(3)),will(0,vector<int>(3));int k[3];
for(int i = 0; i<m;i++){
cin>>k[0]>>k[1]>>k[2];
will.push_back({k[0],0,k[2]});
will.push_back({k[1],-1,k[2]});
}
for(int i = 0; i<n;i++){
cin>>v[i][2]>>v[i][0]>>v[i][1];
will.push_back({v[i][2],-2,i});
}
sort(will.begin(),will.end());
int ans=-1,ansv=0;
int w=will.size();
for(int i = 0;i<w;i++){
if(will[i][1]==0){
s.insert(will[i][2]);
}
else if(will[i][1]==-1){
s.erase(will[i][2]);
}
else{
int temp=s.order_of_key(v[will[i][2]][1]+1)-s.order_of_key(v[will[i][2]][0]);
if(temp>ansv){
ansv=temp;
ans=will[i][2]+1;
}
}
}cout<<ans<<endl;
}