#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
#define pii pair<int,int>
#define pll pair<ll,ll>
#define pb push_back
#define fi first
#define se second
#define UP(a,b,c) for(ll (a)=(b);(a)<(c);(a)++)
#define UU(a,b,c) for(ll (a)=(b);(a)<=(c);(a)++)
#define DN(a,b,c) for(ll (a)=(b);(a)>(c);(a)--)
#define DU(a,b,c) for(ll (a)=(b);(a)>=(c);(a)--)

int fen[300005], n, q, a[300005], t, x, y;

int get(int idx)
{
	int res = 0;
	while(idx > 0)
	{
		res  ^= fen[idx];
		idx -= (idx & -idx);
	}
	return res;
}

void update(int idx, int val)
{
	while(idx <= n)
	{
		fen[idx]  ^= val;
		idx += (idx & -idx);
	}
}

void reset()
{
}

void input()
{
	cin >> n >> q;
	UU(i, 1, n)
	{
		cin >> a[i];
		update(i, a[i]);
	}
}


void solve()
{
	while(q--)
	{
		cin >> t >> x >> y;
		if(t == 1)
		{
			update(x, y);
		}
		else
		{
			int a = get(x - 1);
			int b = get(y);
			cout << (a ^ b) << endl;
		}
	}
}

void LetsRock()
{
	solve();
}

int main()
{
	ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);

		input();
		reset();
		LetsRock();

	return 0;
}
#include <bits/stdc++.h>
using namespace std;
 
int main() {
  int N, M, T;
  int R = 0;
  cin >> N >> M >> T;
  int L = N;
  
 for (int i = 0; i < M; i++){
   int A = 0, B = 0;
   cin >> A >> B;
   L -= (A - R);
   if (L <= 0){
     break;
   }
   else{
     L += (B - A);
     if(L > N) {
       L = N;
     }
     R = B;
   }
 }
  if (L > 0) {
    L -= (T - R);
  }
  else{
  }
  if (L > 0) {
    cout << "Yes" << endl;
  }
  else {
    cout << "No" << endl;
  }
  
}