#include<bits/stdc++.h>
using namespace std;
long long q, type, x, a = 0;
void input()
{
cin >> q;
}
void solve()
{
while(q--)
{
cin >> type;
if(type == 1)
{
cin >> x;
a ^= x;
}
else if(type == 2)
{
if(a != 0)
{
long long mask =1ll << (63 - __builtin_clzll(a));
a ^= mask;
}
}
else
{
cout << __builtin_popcountll(a) << '\n';
}
}
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
input();
solve();
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKbG9uZyBsb25nIHEsIHR5cGUsIHgsIGEgPSAwOwp2b2lkIGlucHV0KCkKewogICAgY2luID4+IHE7Cn0Kdm9pZCBzb2x2ZSgpCnsKICAgIHdoaWxlKHEtLSkKICAgIHsKICAgICAgICBjaW4gPj4gdHlwZTsKCiAgICAgICAgaWYodHlwZSA9PSAxKQogICAgICAgIHsKICAgICAgICAgICAgY2luID4+IHg7CiAgICAgICAgICAgIGEgXj0geDsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZih0eXBlID09IDIpCiAgICAgICAgewogICAgICAgICAgICBpZihhICE9IDApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBtYXNrID0xbGwgPDwgKDYzIC0gX19idWlsdGluX2NsemxsKGEpKTsKCiAgICAgICAgICAgICAgICBhIF49IG1hc2s7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgY291dCA8PCBfX2J1aWx0aW5fcG9wY291bnRsbChhKSA8PCAnXG4nOwogICAgICAgIH0KICAgIH0KfQppbnQgbWFpbigpCnsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CiAgICBjaW4udGllKDApOwogICAgaW5wdXQoKTsKICAgIHNvbHZlKCk7Cn0KCg==