#include <bits/stdc++.h>
using namespace std;
int main() {
  int n;
  long long int m;
  cin >> n >> m;
  long long int zn = 1 << n;
  long long int a[2 * zn - 1];
  for (int i = 0; i < zn; i++) {
    cin >> a[i];
  }
  long long int cu = zn;
  long long int prev = 0;
  long long int pos = zn;
  for (int i = 1; i <= n; i++) {
    cu /= 2;
    for (int j = 0; j < cu; j++) {
      if (i % 2 == 1) {
        a[pos + j] = a[prev + j * 2] | a[prev + j * 2 + 1];
      } else {
        a[pos + j] = a[prev + j * 2] ^ a[prev + j * 2 + 1];
      }
    }
    prev = pos;
    pos += cu;
  }
  long long int p, b;
  for (int i = 0; i < m; i++) {
    cin >> p >> b;
    p--;
    a[p] = b;
    long long int sum = 0;
    long long int cu = zn;
    long long int pos = p;
    for (int j = 1; j <= n; j++) {
      if (j % 2 == 1) {
        if (pos % 2 == 0) {
          a[sum + cu + pos / 2] = a[sum + pos] | a[sum + pos + 1];
        } else {
          a[sum + cu + pos / 2] = a[sum + pos - 1] | a[sum + pos];
        }
      } else {
        if (pos % 2 == 0) {
          a[sum + cu + pos / 2] = a[sum + pos] ^ a[sum + pos + 1];
        } else {
          a[sum + cu + pos / 2] = a[sum + pos - 1] ^ a[sum + pos];
        }
      }
      sum += cu;
      cu /= 2;
      pos /= 2;
    }
    cout << a[2 * zn - 2] << "\n";
  }
  return 0;
}
