#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 5;
const int INF = 0x3f3f3f3f;
int n, q;
int A[N];
int maxx[N << 2];
long long sum[N << 2];
void Build(int l, int r, int rt) {
  if (l == r) {
    sum[rt] = A[l];
    maxx[rt] = A[l];
    return;
  }
  int m = (l + r) >> 1;
  Build(l, m, rt << 1);
  Build(m + 1, r, rt << 1 | 1);
  sum[rt] = sum[rt << 1] + sum[rt << 1 | 1];
  maxx[rt] = max(maxx[rt << 1], maxx[rt << 1 | 1]);
}
void Update(int pos, int num, int l, int r, int rt) {
  if (l == r) {
    sum[rt] = num;
    maxx[rt] = num;
    return;
  }
  int m = (l + r) >> 1;
  if (pos <= m)
    Update(pos, num, l, m, rt << 1);
  else
    Update(pos, num, m + 1, r, rt << 1 | 1);
  sum[rt] = sum[rt << 1] + sum[rt << 1 | 1];
  maxx[rt] = max(maxx[rt << 1], maxx[rt << 1 | 1]);
}
long long Sum(int L, int R, int l, int r, int rt) {
  if (L <= l && r <= R) {
    return sum[rt];
  }
  int m = (l + r) >> 1;
  long long ret = 0;
  if (L <= m) ret += Sum(L, R, l, m, rt << 1);
  if (R > m) ret += Sum(L, R, m + 1, r, rt << 1 | 1);
  return ret;
}
pair<long long, int> Ans;
void Find(int L, int R, long long num, int l, int r, int rt) {
  if (l == r) {
    Ans = make_pair(maxx[rt], l);
    return;
  }
  int m = (l + r) >> 1;
  if (maxx[rt << 1] >= num && L <= m) Find(L, R, num, l, m, rt << 1);
  if (maxx[rt << 1 | 1] >= num && R > m && Ans.first == -1)
    Find(L, R, num, m + 1, r, rt << 1 | 1);
}
int main() {
  scanf("%d %d", &n, &q);
  for (int i = 1; i <= n; ++i) {
    scanf("%d", &A[i]);
  }
  Build(1, n, 1);
  for (int i = 0; i < q; ++i) {
    int a, b;
    scanf("%d %d", &a, &b);
    Update(a, b, 1, n, 1);
    A[a] = b;
    if (A[1] == 0)
      printf("1\n");
    else if (A[1] == A[2])
      printf("2\n");
    else {
      int pre = 2;
      while (1) {
        long long tmpTarget = Sum(1, pre, 1, n, 1);
        if (tmpTarget > maxx[1]) {
          printf("-1\n");
          break;
        }
        Ans = make_pair(-1, -1);
        Find(pre + 1, n, tmpTarget, 1, n, 1);
        if (Ans.first == -1) {
          printf("-1\n");
          break;
        }
        long long nowTarget = Sum(1, Ans.second - 1, 1, n, 1);
        if (Ans.first == nowTarget) {
          printf("%d\n", Ans.second);
          break;
        } else {
          pre = Ans.second;
        }
      }
    }
  }
  return 0;
}
