#include <bits/stdc++.h>
using namespace std;
#define err(x) cerr << #x << " " << x << endl;
#define rep(i, begin, end) for(__typeof(begin) i = begin - (begin > end); i != end - (begin > end); i += 1 - 2*(begin > end))
#define PI acos(-1)
#define mp make_pair
#define mt make_tuple
#define em emplace_ back
#define oo 1000000000000000000 //1e18
#define inf 1000000001 //1e9
typedef long long ll;
int scores[100010];
struct team{
int id, score;
bool operator < (const team& t) const{
if(score == t.score)
return id < t.id;
return score > t.score;
}
};
int main(){
#ifdef Cyborg1o1
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
int t;
scanf("%d", &t);
while(t--){
int n, q;
scanf(" %d %d", &n, &q);
/*
if(n == 1){
printf("%d\n", 0);
continue;
}
*/
set<team> status;
rep(i, 1, n + 1){
team t;
t.id = i;
t.score = 0;
status.insert(t);
}
/*
team t;
t.id = 1;
t.score = 10;
status.insert(t);
t.id = 2;
t.score = 30;
status.insert(t);
t.id = 3;
t.score = 30;
status.insert(t);
for(auto s: status)
cout << s.id << " " << s.score << endl;
*/
team mx;
mx.id = 1;
mx.score = 0;
int event_idx = 0;
rep(i, 1, n + 1) scores[i] = 0;
rep(i, 1, q + 1){
int x, p;
scanf(" %d %d", &x, &p);
team t;
t.id = x;
t.score = scores[x];
scores[x] += p;
status.erase(t);
t.score = scores[x];
status.insert(t);
team top = *status.begin();
if(top.id != mx.id){
mx = top;
event_idx = i;
}
}
printf("%d\n", event_idx);
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2RlZmluZSBlcnIoeCkgY2VyciA8PCAjeCA8PCAiICIgPDwgeCA8PCBlbmRsOwoKI2RlZmluZSByZXAoaSwgYmVnaW4sIGVuZCkgZm9yKF9fdHlwZW9mKGJlZ2luKSBpID0gYmVnaW4gLSAoYmVnaW4gPiBlbmQpOyBpICE9IGVuZCAtIChiZWdpbiA+IGVuZCk7IGkgKz0gMSAtIDIqKGJlZ2luID4gZW5kKSkKCiNkZWZpbmUgUEkgYWNvcygtMSkKCiNkZWZpbmUgbXAgbWFrZV9wYWlyCgojZGVmaW5lIG10IG1ha2VfdHVwbGUKCiNkZWZpbmUgZW0gZW1wbGFjZV8gYmFjawoKI2RlZmluZSBvbyAxMDAwMDAwMDAwMDAwMDAwMDAwIC8vMWUxOAoKI2RlZmluZSBpbmYgMTAwMDAwMDAwMSAvLzFlOQoKdHlwZWRlZiBsb25nIGxvbmcgbGw7CgoKaW50IHNjb3Jlc1sxMDAwMTBdOwoKCnN0cnVjdCB0ZWFtewoKCWludCBpZCwgc2NvcmU7CgoJYm9vbCBvcGVyYXRvciA8IChjb25zdCB0ZWFtJiB0KSBjb25zdHsKCgkJaWYoc2NvcmUgPT0gdC5zY29yZSkKCQkJcmV0dXJuIGlkIDwgdC5pZDsKCgkJcmV0dXJuIHNjb3JlID4gdC5zY29yZTsKCX0KCn07CgoKaW50IG1haW4oKXsKICAgIAogICAgCiAgICAjaWZkZWYgQ3lib3JnMW8xCgkJZnJlb3BlbigiaW5wdXQudHh0IiwgInIiLCBzdGRpbik7CgkJZnJlb3Blbigib3V0cHV0LnR4dCIsICJ3Iiwgc3Rkb3V0KTsKCSNlbmRpZgoJCglpbnQgdDsKCXNjYW5mKCIlZCIsICZ0KTsKCgl3aGlsZSh0LS0pewoKCQlpbnQgbiwgcTsKCQlzY2FuZigiICVkICVkIiwgJm4sICZxKTsKLyoKCQlpZihuID09IDEpewoJCQlwcmludGYoIiVkXG4iLCAwKTsKCQkJY29udGludWU7CgkJfQoqLwoJCXNldDx0ZWFtPiBzdGF0dXM7CgkJCQkKCQlyZXAoaSwgMSwgbiArIDEpewoJCQl0ZWFtIHQ7CgkJCXQuaWQgPSBpOwoJCQl0LnNjb3JlID0gMDsKCQkJc3RhdHVzLmluc2VydCh0KTsKCQl9CgkKCQkvKgoJCXRlYW0gdDsKCQkJdC5pZCA9IDE7CgkJCXQuc2NvcmUgPSAxMDsKCQkJc3RhdHVzLmluc2VydCh0KTsKCQkKCQkJdC5pZCA9IDI7CgkJCXQuc2NvcmUgPSAzMDsKCQkJc3RhdHVzLmluc2VydCh0KTsKCgkJCXQuaWQgPSAzOwoJCQl0LnNjb3JlID0gMzA7CgkJCXN0YXR1cy5pbnNlcnQodCk7CgoJCWZvcihhdXRvIHM6IHN0YXR1cykKCQkJY291dCA8PCBzLmlkIDw8ICIgIiA8PCBzLnNjb3JlIDw8IGVuZGw7CgkJKi8KCgkJdGVhbSBteDsKCQlteC5pZCA9IDE7CgkJbXguc2NvcmUgPSAwOwoKCQlpbnQgZXZlbnRfaWR4ID0gMDsKCgkJcmVwKGksIDEsIG4gKyAxKSBzY29yZXNbaV0gPSAwOwoKCQlyZXAoaSwgMSwgcSArIDEpewoKCQkJaW50IHgsIHA7CgkJCXNjYW5mKCIgJWQgJWQiLCAmeCwgJnApOwoKCQkJdGVhbSB0OwoJCQl0LmlkID0geDsKCQkJdC5zY29yZSA9IHNjb3Jlc1t4XTsKCgkJCXNjb3Jlc1t4XSArPSBwOwoKCQkJc3RhdHVzLmVyYXNlKHQpOwoJCQl0LnNjb3JlID0gc2NvcmVzW3hdOwoJCQlzdGF0dXMuaW5zZXJ0KHQpOwoKCQkJdGVhbSB0b3AgPSAqc3RhdHVzLmJlZ2luKCk7CgoJCQlpZih0b3AuaWQgIT0gbXguaWQpewoJCQkJbXggPSB0b3A7CgkJCQlldmVudF9pZHggPSBpOwoJCQl9CgkJCQoJCX0KCgoJCXByaW50ZigiJWRcbiIsIGV2ZW50X2lkeCk7CgoJfQoKCglyZXR1cm4gMDsKCn0=