#include <bits/stdc++.h>
using namespace std;
int st[300015], i, n, m, k, p, b, z;
void build(int x) {
  for (int i = x; i < 2 * x; ++i) {
    st[i] = st[i * 2] | st[i * 2 + 1];
  }
  for (int i = x / 2; i < x; ++i) {
    st[i] = st[i * 2] ^ st[i * 2 + 1];
  }
  if (x / 4 > 0) {
    build(x / 4);
  }
}
void change(int x) {
  st[x] = st[x * 2] | st[x * 2 + 1];
  x /= 2;
  st[x] = st[x * 2] ^ st[x * 2 + 1];
  if (x / 2 > 0) {
    change(x / 2);
  }
}
int main() {
  cin >> n >> m;
  k = 2;
  for (i = 1; i < n; ++i) {
    k *= 2;
  }
  for (i = k; i < k * 2; ++i) {
    cin >> st[i];
  }
  build(k / 2);
  for (i = 0; i < m; ++i) {
    cin >> p >> b;
    st[(k + p - 1)] = b;
    change((k + p - 1) / 2);
    cout << st[1] << "\n";
  }
  return 0;
}
