#include <bits/stdc++.h>
using namespace std;
const int maxn = 2e5 + 5, M = 1e9 + 7;
int n, q;
long long int a[maxn], mi[maxn * 4], lazy[maxn * 4], po[maxn];
void put(int s, int e, int id, long long int x) {
  lazy[id] += x;
  mi[id] += x;
}
void shift(int s, int e, int id) {
  int mid = (s + e) >> 1;
  if (s + 1 == e) {
    return;
  }
  put(s, mid, id << 1, lazy[id]);
  put(mid, e, id << 1 | 1, lazy[id]);
  lazy[id] = 0;
}
void update(long long int add, int l, int r, int id = 1, int s = 0, int e = n) {
  if (e <= l || s >= r) {
    return;
  }
  if (s >= l && e <= r) {
    put(s, e, id, add);
    return;
  }
  shift(s, e, id);
  int mid = (s + e) >> 1;
  update(add, l, r, id << 1, s, mid);
  update(add, l, r, id << 1 | 1, mid, e);
  mi[id] = min(mi[id << 1], mi[id << 1 | 1]);
  return;
}
int get(int s = 0, int e = n, int id = 1) {
  if (mi[id] > 0) return -1;
  if (e - s < 2) {
    if (mi[id] < 0) return -1;
    if (mi[id] == 0) return s + 1;
  }
  shift(s, e, id);
  int mid = (s + e) >> 1, ans;
  ans = get(s, mid, id << 1);
  if (ans == -1) ans = get(mid, e, id << 1 | 1);
  return ans;
}
int main() {
  cin >> n >> q;
  long long int sum = 0;
  for (int i = 0; i < n; i++) {
    cin >> a[i];
    po[i] = sum - a[i];
    update(po[i], i, i + 1);
    sum += a[i];
  }
  for (int i = 0; i < q; i++) {
    long long int p, x, t;
    cin >> p >> x;
    p--;
    t = a[p] - x;
    a[p] = x;
    update(-t, p + 1, n);
    update(t, p, p + 1);
    cout << get() << endl;
  }
  return 0;
}
