// (***** بسم الله الرحمن الرحيم ******)
#include <iostream>
#include <bits/stdc++.h>
#include <string>
#include <algorithm>
#include <cmath>
#include <vector>
#include <map>
#include <stack>
#include <queue>
#include <set>
#define ll long long
#define endl '\n'
#define du double
#define mx INT_MIN
#define mn INT_MAX
#define all(v) (v).begin(), (v).end()
#define rall(v) (v).rbegin(), (v).rend()
using namespace std;
bool Prime(ll n) // 2 3 5 7 11 ..
{
if (n < 2 || (n % 2 == 0 && n != 2))
{
return false;
}
for (int i = 3; i <= sqrt(n); i += 2) // 3 5 7 9 11 ect..
{
if (n % i == 0)
{
return false;
}
}
return true;
}
bool pliand(ll n) // 121 the start of number like end!!
{
ll num = n;
ll nm = 0;
for (ll i = 0; i < n;)
{
nm = nm * 10 + n % 10;
n /= 10;
}
if (nm == num)
{
return true;
}
return false;
}
string binry_conv(ll n) // from dec like = 1 , 5 , 10 .. ect >> bainary like "0011001001"
{
string s;
while (n)
{
if (n % 2 != 0)
{
s += '1';
}
else
{
s += '0';
}
n /= 2;
}
return s;
}
ll GCD(ll a, ll b) // GREATEST COMMON DIVISOR
{
return (!b ? a : GCD(b, a % b));
}
ll LCM(ll a, ll b)
{
return (a * b) / __gcd(a, b);
}
ll numofdivisors(ll n)
{
ll cot = 0;
for (ll i = 1; i <= sqrt(n); i++)
{
if (n % i == 0)
{
cot += i;
}
}
return cot;
}
ll summmtion(ll n) // ARTIMITIC PROGRESSION
{
return n * (n + 1) / 2;
}
ll nCr(ll n, ll r) // !(n) / !(n - r)
{
ll p = 1, k = 1;
if (n - r < r)
r = n - r;
if (n < 0)
return 0;
while (r)
{
p *= n; //!(n)
k *= r; //!(r)
ll m = GCD(p, k);
p /= m;
k /= m;
n--;
r--;
}
return p;
}
ll bianarry_search(vector<ll> v, ll st, ll end, ll target)
{
// order O(log(n))
ll cot = 0;
while (st >= end)
{
ll mid = (st + end) / 2;
if (v[mid] > target)
{
st = mid + 1;
}
else if (v[mid] < target)
{
end = mid - 1;
}
else
{
return mid;
// foundddd
}
}
return -1; // not foundddd
}
bool isvowel(char x)
{
if (x == 'A' || x == 'E' || x == 'O' || x == 'Y' || x == 'U' || x == 'I')
{
return 1;
}
return 0;
}
//_______________| THAT'S MY COOOOOODE |_;
void MEDO()
{
ll q, n;
cin >> q >> n;
while (q--)
{
ll type;
cin >> type;
if (type == 1)
{
ll x;
cin >> x;
string c;
c = binry_conv(n);
cout << c[x] << endl;
}
else if (type == 2)
{
ll x;
cin >> x;
string c;
c = binry_conv(n);
c[x] = '1';
ll num = 0;
for (int i = 0; i < n; i++)
{
if (c[i] == '1')
{
num += pow(2, i);
}
}
n = num;
cout << n << endl;
}
else if (type == 3)
{
ll x;
cin >> x;
string c;
c = binry_conv(n);
c[x] = '0';
ll num = 0;
for (int i = 0; i < n; i++)
{
if (c[i] == '1')
{
num += pow(2, i);
}
}
n = num;
cout << n << endl;
}
else
{
ll x;
cin >> x;
string c;
c = binry_conv(n);
if (c[x] == '1')
{
c[x] = '0';
ll num = 0;
for (int i = 0; i < n; i++)
{
if (c[i] == '1')
{
num += pow(2, i);
}
}
n=num;
cout << n << endl;
}
else
{
c[x] = '1';
ll num = 0;
for (int i = 0; i < n; i++)
{
if (c[i] == '1')
{
num += pow(2, i);
}
}
n=num;
cout << n << endl;
}
}
}
}
void SPEED()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr), cout.tie(nullptr);
}
int main()
{
SPEED();
MEDO();
}
Ly8gKCoqKioqINio2LPZhSDYp9mE2YTZhyDYp9mE2LHYrdmF2YYg2KfZhNix2K3ZitmFICAqKioqKiopCiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNpbmNsdWRlIDxzdHJpbmc+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDxjbWF0aD4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPG1hcD4KI2luY2x1ZGUgPHN0YWNrPgojaW5jbHVkZSA8cXVldWU+CiNpbmNsdWRlIDxzZXQ+CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgZW5kbCAnXG4nCiNkZWZpbmUgZHUgZG91YmxlCiNkZWZpbmUgbXggSU5UX01JTgojZGVmaW5lIG1uIElOVF9NQVgKI2RlZmluZSBhbGwodikgKHYpLmJlZ2luKCksICh2KS5lbmQoKQojZGVmaW5lIHJhbGwodikgKHYpLnJiZWdpbigpLCAodikucmVuZCgpCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmJvb2wgUHJpbWUobGwgbikgLy8gMiAzIDUgNyAxMSAuLgp7CiAgaWYgKG4gPCAyIHx8IChuICUgMiA9PSAwICYmIG4gIT0gMikpCiAgewogICAgcmV0dXJuIGZhbHNlOwogIH0KICBmb3IgKGludCBpID0gMzsgaSA8PSBzcXJ0KG4pOyBpICs9IDIpIC8vIDMgNSA3IDkgMTEgZWN0Li4KICB7CiAgICBpZiAobiAlIGkgPT0gMCkKICAgIHsKICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQogIH0KICByZXR1cm4gdHJ1ZTsKfQpib29sIHBsaWFuZChsbCBuKSAvLyAxMjEgdGhlIHN0YXJ0IG9mIG51bWJlciBsaWtlIGVuZCEhCnsKICBsbCBudW0gPSBuOwogIGxsIG5tID0gMDsKICBmb3IgKGxsIGkgPSAwOyBpIDwgbjspCiAgewogICAgbm0gPSBubSAqIDEwICsgbiAlIDEwOwogICAgbiAvPSAxMDsKICB9CiAgaWYgKG5tID09IG51bSkKICB7CiAgICByZXR1cm4gdHJ1ZTsKICB9CiAgcmV0dXJuIGZhbHNlOwp9CnN0cmluZyBiaW5yeV9jb252KGxsIG4pIC8vIGZyb20gZGVjIGxpa2UgPSAxICwgNSAsIDEwIC4uIGVjdCA+PiBiYWluYXJ5IGxpa2UgIjAwMTEwMDEwMDEiCnsKICBzdHJpbmcgczsKICB3aGlsZSAobikKICB7CiAgICBpZiAobiAlIDIgIT0gMCkKICAgIHsKICAgICAgcyArPSAnMSc7CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgIHMgKz0gJzAnOwogICAgfQogICAgbiAvPSAyOwogIH0KICByZXR1cm4gczsKfQpsbCBHQ0QobGwgYSwgbGwgYikgLy8gR1JFQVRFU1QgQ09NTU9OIERJVklTT1IKewogIHJldHVybiAoIWIgPyBhIDogR0NEKGIsIGEgJSBiKSk7Cn0KbGwgTENNKGxsIGEsIGxsIGIpCnsKICByZXR1cm4gKGEgKiBiKSAvIF9fZ2NkKGEsIGIpOwp9CmxsIG51bW9mZGl2aXNvcnMobGwgbikKewogIGxsIGNvdCA9IDA7CiAgZm9yIChsbCBpID0gMTsgaSA8PSBzcXJ0KG4pOyBpKyspCiAgewogICAgaWYgKG4gJSBpID09IDApCiAgICB7CiAgICAgIGNvdCArPSBpOwogICAgfQogIH0KICByZXR1cm4gY290Owp9CgpsbCBzdW1tbXRpb24obGwgbikgLy8gQVJUSU1JVElDIFBST0dSRVNTSU9OCnsKICByZXR1cm4gbiAqIChuICsgMSkgLyAyOwp9CmxsIG5DcihsbCBuLCBsbCByKSAvLyAhKG4pIC8gIShuIC0gcikKewogIGxsIHAgPSAxLCBrID0gMTsKICBpZiAobiAtIHIgPCByKQogICAgciA9IG4gLSByOwogIGlmIChuIDwgMCkKICAgIHJldHVybiAwOwogIHdoaWxlIChyKQogIHsKICAgIHAgKj0gbjsgLy8hKG4pCiAgICBrICo9IHI7IC8vIShyKQogICAgbGwgbSA9IEdDRChwLCBrKTsKICAgIHAgLz0gbTsKICAgIGsgLz0gbTsKICAgIG4tLTsKICAgIHItLTsKICB9CiAgcmV0dXJuIHA7Cn0KbGwgYmlhbmFycnlfc2VhcmNoKHZlY3RvcjxsbD4gdiwgbGwgc3QsIGxsIGVuZCwgbGwgdGFyZ2V0KQp7CiAgLy8gb3JkZXIgTyhsb2cobikpCiAgbGwgY290ID0gMDsKICB3aGlsZSAoc3QgPj0gZW5kKQogIHsKICAgIGxsIG1pZCA9IChzdCArIGVuZCkgLyAyOwogICAgaWYgKHZbbWlkXSA+IHRhcmdldCkKICAgIHsKICAgICAgc3QgPSBtaWQgKyAxOwogICAgfQogICAgZWxzZSBpZiAodlttaWRdIDwgdGFyZ2V0KQogICAgewogICAgICBlbmQgPSBtaWQgLSAxOwogICAgfQogICAgZWxzZQogICAgewogICAgICByZXR1cm4gbWlkOwogICAgICAvLyBmb3VuZGRkZAogICAgfQogIH0KICByZXR1cm4gLTE7IC8vIG5vdCBmb3VuZGRkZAp9CmJvb2wgaXN2b3dlbChjaGFyIHgpCnsKICBpZiAoeCA9PSAnQScgfHwgeCA9PSAnRScgfHwgeCA9PSAnTycgfHwgeCA9PSAnWScgfHwgeCA9PSAnVScgfHwgeCA9PSAnSScpCiAgewogICAgcmV0dXJuIDE7CiAgfQogIHJldHVybiAwOwp9Ci8vX19fX19fX19fX19fX19ffCAgVEhBVCdTIE1ZIENPT09PT09ERSB8XzsKdm9pZCBNRURPKCkKewogIGxsIHEsIG47CiAgY2luID4+IHEgPj4gbjsKICB3aGlsZSAocS0tKQogIHsKICAgIGxsIHR5cGU7CiAgICBjaW4gPj4gdHlwZTsKICAgIGlmICh0eXBlID09IDEpCiAgICB7CiAgICAgIGxsIHg7CiAgICAgIGNpbiA+PiB4OwogICAgICBzdHJpbmcgYzsKICAgICAgYyA9IGJpbnJ5X2NvbnYobik7CiAgICAgIGNvdXQgPDwgY1t4XSA8PCBlbmRsOwogICAgfQogICAgZWxzZSBpZiAodHlwZSA9PSAyKQogICAgewogICAgICBsbCB4OwogICAgICBjaW4gPj4geDsKICAgICAgc3RyaW5nIGM7CiAgICAgIGMgPSBiaW5yeV9jb252KG4pOwogICAgICBjW3hdID0gJzEnOwogICAgICBsbCBudW0gPSAwOwogICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykKICAgICAgewogICAgICAgIGlmIChjW2ldID09ICcxJykKICAgICAgICB7CiAgICAgICAgICBudW0gKz0gcG93KDIsIGkpOwogICAgICAgIH0KICAgICAgfQogICAgICBuID0gbnVtOwogICAgICBjb3V0IDw8IG4gPDwgZW5kbDsKICAgIH0KICAgIGVsc2UgaWYgKHR5cGUgPT0gMykKICAgIHsKICAgICAgbGwgeDsKICAgICAgY2luID4+IHg7CiAgICAgIHN0cmluZyBjOwogICAgICBjID0gYmlucnlfY29udihuKTsKICAgICAgY1t4XSA9ICcwJzsKICAgICAgbGwgbnVtID0gMDsKICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspCiAgICAgIHsKICAgICAgICBpZiAoY1tpXSA9PSAnMScpCiAgICAgICAgewogICAgICAgICAgbnVtICs9IHBvdygyLCBpKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgbiA9IG51bTsKICAgICAgY291dCA8PCBuIDw8IGVuZGw7CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgIGxsIHg7CiAgICAgIGNpbiA+PiB4OwogICAgICBzdHJpbmcgYzsKICAgICAgYyA9IGJpbnJ5X2NvbnYobik7CiAgICAgIGlmIChjW3hdID09ICcxJykKICAgICAgewogICAgICAgIGNbeF0gPSAnMCc7CiAgICAgICAgbGwgbnVtID0gMDsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykKICAgICAgICB7CiAgICAgICAgICBpZiAoY1tpXSA9PSAnMScpCiAgICAgICAgICB7CiAgICAgICAgICAgIG51bSArPSBwb3coMiwgaSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIG49bnVtOwogICAgICAgIGNvdXQgPDwgbiA8PCBlbmRsOwogICAgICB9CiAgICAgIGVsc2UKICAgICAgewogICAgICAgIGNbeF0gPSAnMSc7CiAgICAgICAgbGwgbnVtID0gMDsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykKICAgICAgICB7CiAgICAgICAgICBpZiAoY1tpXSA9PSAnMScpCiAgICAgICAgICB7CiAgICAgICAgICAgIG51bSArPSBwb3coMiwgaSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIG49bnVtOwogICAgICAgIGNvdXQgPDwgbiA8PCBlbmRsOwogICAgICB9CiAgICB9CiAgfQp9CnZvaWQgU1BFRUQoKQp7CiAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgY2luLnRpZShudWxscHRyKSwgY291dC50aWUobnVsbHB0cik7Cn0KaW50IG1haW4oKQp7CiAgU1BFRUQoKTsKICBNRURPKCk7Cn0=