#include <bits/stdc++.h>
using namespace std;
int N, M;
struct bit {
  unsigned long long a[1002];
  bit() { memset(a, 0, sizeof(a)); }
  void update(int i, unsigned long long v) {
    while (i && i <= N) a[i] ^= v, i += i & (-i);
  }
  unsigned long long query(int i) {
    unsigned long long ans = 0;
    while (i && i <= N) ans ^= a[i], i -= i & (-i);
    return ans;
  }
};
struct even_odd_bit {
  bit a[2];
  void update(int i, unsigned long long v) { a[i % 2].update((i + 1) / 2, v); }
  unsigned long long query(int i) { return a[i % 2].query((i + 1) / 2); }
};
struct bit2d {
  even_odd_bit b[1002];
  bit2d() {}
  void update(int i, int j, unsigned long long v) {
    while (i && i <= N) b[i].update(j, v), i += i & (-i);
  }
  unsigned long long query(int i, int j) {
    unsigned long long ans = 0;
    while (i && i <= N) ans ^= b[i].query(j), i -= i & (-i);
    return ans;
  }
};
struct even_odd_bit2d {
  bit2d a[2];
  void update(int i, int j, unsigned long long v) {
    a[i % 2].update((i + 1) / 2, j, v);
  }
  unsigned long long query(int i, int j) {
    return a[i % 2].query((i + 1) / 2, j);
  }
};
struct xorbit : public even_odd_bit2d {
  void update(int i1, int j1, int i2, int j2, unsigned long long v) {
    assert(i1 <= i2 && j1 <= j2);
    even_odd_bit2d::update(i1, j1, v);
    even_odd_bit2d::update(i1, j2 + 1, v);
    even_odd_bit2d::update(i2 + 1, j1, v);
    even_odd_bit2d::update(i2 + 1, j2 + 1, v);
  }
  unsigned long long query(int i1, int j1, int i2, int j2) {
    assert(i1 <= i2 && j1 <= j2);
    return even_odd_bit2d::query(i2, j2) ^ even_odd_bit2d::query(i2, j1 - 1) ^
           even_odd_bit2d::query(i1 - 1, j1 - 1) ^
           even_odd_bit2d::query(i1 - 1, j2);
  }
};
xorbit B;
int main() {
  cin >> N >> M;
  int c, i1, j1, i2, j2;
  unsigned long long v;
  for (int q = 0; q < (M); ++q) {
    scanf("%d%d%d%d%d", &c, &i1, &j1, &i2, &j2);
    if (c == 1) {
      cout << B.query(i1, j1, i2, j2) << endl;
    } else {
      assert(c == 2);
      cin >> v;
      B.update(i1, j1, i2, j2, v);
    }
  }
}
