#include <bits/stdc++.h>
#ifndef ONLINE_JUDGE
#include "debug.h"
#else
#define debug(...)
#endif
#define int long long
#define oo LLONG_MAX >> 2
#define all(x) x.begin(), x.end()
#define allr(x) x.rbegin(), x.rend()
#define pep_Guardiola \
ios::sync_with_stdio(0); \
cin.tie(0); \
cout.tie(0);
using namespace std;
void io()
{
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
// freopen("output.txt", "w", stdout);
#endif
}
struct Node {
int mx = -oo;
int place = -1;
} NEUTRAL;
struct SegTree {
int size;
vector<Node> tree;
SegTree(int n) {
size = 1;
while (size < n)
size *= 2;
tree.resize(2 * size);
}
Node merage(const Node &a, const Node &b) {
Node res;
if(a.mx >= b.mx){
res = a;
}else{
res = b;
}
return res;
}
void build(vector<int> &a, int x, int lx, int rx) {
if (rx - lx == 1) {
if (lx < a.size()) {
tree[x].place = lx;
}
return;
}
int m = (lx + rx) / 2;
build(a, 2 * x + 1, lx, m);
build(a, 2 * x + 2, m, rx);
tree[x] = merage(tree[2 * x + 1], tree[2 * x + 2]);
}
void update(int i, int v, int x, int lx, int rx) {
if (rx - lx == 1) {
tree[x].mx += v;
return;
}
int m = (lx + rx) / 2;
if (i < m)
update(i, v, 2 * x + 1, lx, m);
else
update(i, v, 2 * x + 2, m, rx);
tree[x] = merage(tree[2 * x + 1], tree[2 * x + 2]);
}
// zero based Range Query [l,r)
Node query(int l, int r, int x, int lx, int rx)
{
if (lx >= r || rx <= l) return NEUTRAL;
if (lx >= l && rx <= r) return tree[x];
int m = (lx + rx)/2;
return merage(query(l, r, 2*x+1, lx, m),query(l, r, 2*x+2, m, rx));
}
void build(vector<int> &a) { build(a, 0, 0, size); }
void update(int i, int v) { update(i, v, 0, 0, size);}
Node query(int l, int r) { return query(l, r, 0, 0, size); }
};
void Guardiola()
{
int n,q;
cin >> n >> q;
vector<int> a(n+2);
SegTree st(n+2);
st.build(a);
int last = 1;
for(int i = 1 ;i <= q;i++){
int id , v;
cin >> id >> v;
int prev = st.query(1,n+1).place;
st.update(id , v);
int cur = st.query(1,n+1).place;
if(cur != prev) last = i;
}
cout << last << endl;
}
signed main()
{
pep_Guardiola;
io();
int t = 1;
cin >> t;
while (t--)
Guardiola();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNpZm5kZWYgT05MSU5FX0pVREdFCiNpbmNsdWRlICJkZWJ1Zy5oIgojZWxzZQojZGVmaW5lIGRlYnVnKC4uLikKI2VuZGlmCiNkZWZpbmUgaW50IGxvbmcgbG9uZwojZGVmaW5lIG9vIExMT05HX01BWCA+PiAyCiNkZWZpbmUgYWxsKHgpIHguYmVnaW4oKSwgeC5lbmQoKQojZGVmaW5lIGFsbHIoeCkgeC5yYmVnaW4oKSwgeC5yZW5kKCkKI2RlZmluZSBwZXBfR3VhcmRpb2xhICAgICAgICBcCiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbygwKTsgXAogICAgY2luLnRpZSgwKTsgICAgICAgICAgICAgIFwKICAgIGNvdXQudGllKDApOwp1c2luZyBuYW1lc3BhY2Ugc3RkOwp2b2lkIGlvKCkKewojaWZuZGVmIE9OTElORV9KVURHRQogICAgZnJlb3BlbigiaW5wdXQudHh0IiwgInIiLCBzdGRpbik7CiAgICAvLyBmcmVvcGVuKCJvdXRwdXQudHh0IiwgInciLCBzdGRvdXQpOwojZW5kaWYKfQoKCnN0cnVjdCBOb2RlIHsKICAgIGludCBteCA9IC1vbzsKICAgIGludCBwbGFjZSA9IC0xOwp9IE5FVVRSQUw7CgpzdHJ1Y3QgU2VnVHJlZSB7CiAgaW50IHNpemU7CiAgdmVjdG9yPE5vZGU+IHRyZWU7CgogIFNlZ1RyZWUoaW50IG4pIHsKICAgIHNpemUgPSAxOwogICAgd2hpbGUgKHNpemUgPCBuKQogICAgICBzaXplICo9IDI7CiAgICB0cmVlLnJlc2l6ZSgyICogc2l6ZSk7CiAgfQoKICBOb2RlIG1lcmFnZShjb25zdCBOb2RlICZhLCBjb25zdCBOb2RlICZiKSB7CiAgICBOb2RlIHJlczsKICAgIGlmKGEubXggPj0gYi5teCl7CiAgICAgICAgcmVzID0gYTsKICAgIH1lbHNlewogICAgICAgIHJlcyA9IGI7CiAgICB9CiAgICByZXR1cm4gcmVzOwogIH0KICB2b2lkIGJ1aWxkKHZlY3RvcjxpbnQ+ICZhLCBpbnQgeCwgaW50IGx4LCBpbnQgcngpIHsKICAgIGlmIChyeCAtIGx4ID09IDEpIHsKICAgICAgaWYgKGx4IDwgYS5zaXplKCkpIHsKICAgICAgIHRyZWVbeF0ucGxhY2UgPSBseDsgCiAgICAgIH0KICAgICAgcmV0dXJuOwogICAgfQogICAgaW50IG0gPSAobHggKyByeCkgLyAyOwogICAgYnVpbGQoYSwgMiAqIHggKyAxLCBseCwgbSk7CiAgICBidWlsZChhLCAyICogeCArIDIsIG0sIHJ4KTsKICAgIHRyZWVbeF0gPSBtZXJhZ2UodHJlZVsyICogeCArIDFdLCB0cmVlWzIgKiB4ICsgMl0pOwogIH0KCiAgCgogIHZvaWQgdXBkYXRlKGludCBpLCBpbnQgdiwgaW50IHgsIGludCBseCwgaW50IHJ4KSB7CiAgICBpZiAocnggLSBseCA9PSAxKSB7CiAgICAgICAgdHJlZVt4XS5teCArPSB2OwogICAgICByZXR1cm47CiAgICB9CiAgICBpbnQgbSA9IChseCArIHJ4KSAvIDI7CiAgICBpZiAoaSA8IG0pCiAgICAgIHVwZGF0ZShpLCB2LCAyICogeCArIDEsIGx4LCBtKTsKICAgIGVsc2UKICAgICAgdXBkYXRlKGksIHYsIDIgKiB4ICsgMiwgbSwgcngpOwogICAgdHJlZVt4XSA9IG1lcmFnZSh0cmVlWzIgKiB4ICsgMV0sIHRyZWVbMiAqIHggKyAyXSk7CiAgfQoKICAvLyB6ZXJvIGJhc2VkIFJhbmdlIFF1ZXJ5IFtsLHIpCiAgTm9kZSBxdWVyeShpbnQgbCwgaW50IHIsIGludCB4LCBpbnQgbHgsIGludCByeCkKICB7CiAgICAgIGlmIChseCA+PSByIHx8IHJ4IDw9IGwpIHJldHVybiBORVVUUkFMOwogICAgICBpZiAobHggPj0gbCAmJiByeCA8PSByKSByZXR1cm4gdHJlZVt4XTsKICAgICAgaW50IG0gPSAobHggKyByeCkvMjsKICAgICAgcmV0dXJuIG1lcmFnZShxdWVyeShsLCByLCAyKngrMSwgbHgsIG0pLHF1ZXJ5KGwsIHIsIDIqeCsyLCBtLCByeCkpOwogIH0KCiAgCgogIHZvaWQgYnVpbGQodmVjdG9yPGludD4gJmEpIHsgYnVpbGQoYSwgMCwgMCwgc2l6ZSk7IH0KICB2b2lkIHVwZGF0ZShpbnQgaSwgaW50IHYpIHsgdXBkYXRlKGksIHYsIDAsIDAsIHNpemUpO30KICBOb2RlIHF1ZXJ5KGludCBsLCBpbnQgcikgeyByZXR1cm4gcXVlcnkobCwgciwgMCwgMCwgc2l6ZSk7IH0KfTsKCnZvaWQgR3VhcmRpb2xhKCkKewogICAgaW50IG4scTsKICAgIGNpbiA+PiBuID4+IHE7CiAgICB2ZWN0b3I8aW50PiBhKG4rMik7CiAgICBTZWdUcmVlIHN0KG4rMik7CiAgICBzdC5idWlsZChhKTsKICAgIGludCBsYXN0ID0gMTsKICAgIGZvcihpbnQgaSA9IDEgO2kgPD0gcTtpKyspewogICAgICAgIGludCBpZCAsIHY7CiAgICAgICAgY2luID4+IGlkID4+IHY7CiAgICAgICAgaW50IHByZXYgPSBzdC5xdWVyeSgxLG4rMSkucGxhY2U7CiAgICAgICAgc3QudXBkYXRlKGlkICwgdik7CiAgICAgICAgaW50IGN1ciA9IHN0LnF1ZXJ5KDEsbisxKS5wbGFjZTsKICAgICAgICBpZihjdXIgIT0gcHJldikgbGFzdCA9IGk7CiAgICB9CiAgICBjb3V0IDw8IGxhc3QgPDwgZW5kbDsKfQoKc2lnbmVkIG1haW4oKQp7CiAgICBwZXBfR3VhcmRpb2xhOwogICAgaW8oKTsKICAgIGludCB0ID0gMTsKICAgIGNpbiA+PiB0OwogICAgd2hpbGUgKHQtLSkKICAgICAgICBHdWFyZGlvbGEoKTsKICAgIHJldHVybiAwOwp9