#include <bits/stdc++.h>
#define ll long long
#define pep_Guardiola        \
    ios::sync_with_stdio(0); \
    cin.tie(0);              \
    cout.tie(0);
using namespace std;
// #define int ll
 
void io()
{
#ifndef ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
#endif
}
const int N = 1e6 + 7;
 
void Guardiola()
{
    int n, q;
    cin >> n >> q;
    vector<int> a(n), freq(N, 0), bits(20);
 
    for (int i = 0; i < n; i++)
    {
        cin >> a[i];
        freq[a[i]]++;
        int msb = log2(a[i]);
        bits[msb]++;
    }
    while (q--)
    {
        char type;
        cin >> type;
        if (type == 'U')
        {
            int i, v;
            cin >> i >> v;
            i--;
            freq[a[i]]--;
            int b = log2(a[i]);
            bits[b]--;
            a[i] = v;
            freq[v]++;
            b = log2(v);
            bits[b]++;
        }
        else if (type == '|')
        {
            int v;
            cin >> v;
            cout << freq[v] << '\n';
        }
        else if (type == '&')
        {
            int v;
            cin >> v;
            cout << n << '\n';
        }
        else
        {
            int v;
            cin >> v;
            int ms = log2(v);
            cout << bits[ms] << '\n';
        }
    }
}
 
signed main()
{
    pep_Guardiola;
    io();
    int t = 1;
    // cin >> t;
    while (t--)
        Guardiola();
 
    return 0;
}
				I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgcGVwX0d1YXJkaW9sYSAgICAgICAgXAogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oMCk7IFwKICAgIGNpbi50aWUoMCk7ICAgICAgICAgICAgICBcCiAgICBjb3V0LnRpZSgwKTsKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKLy8gI2RlZmluZSBpbnQgbGwKCnZvaWQgaW8oKQp7CiNpZm5kZWYgT05MSU5FX0pVREdFCiAgICBmcmVvcGVuKCJpbnB1dC50eHQiLCAiciIsIHN0ZGluKTsKI2VuZGlmCn0KY29uc3QgaW50IE4gPSAxZTYgKyA3OwoKdm9pZCBHdWFyZGlvbGEoKQp7CiAgICBpbnQgbiwgcTsKICAgIGNpbiA+PiBuID4+IHE7CiAgICB2ZWN0b3I8aW50PiBhKG4pLCBmcmVxKE4sIDApLCBiaXRzKDIwKTsKCiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykKICAgIHsKICAgICAgICBjaW4gPj4gYVtpXTsKICAgICAgICBmcmVxW2FbaV1dKys7CiAgICAgICAgaW50IG1zYiA9IGxvZzIoYVtpXSk7CiAgICAgICAgYml0c1ttc2JdKys7CiAgICB9CiAgICB3aGlsZSAocS0tKQogICAgewogICAgICAgIGNoYXIgdHlwZTsKICAgICAgICBjaW4gPj4gdHlwZTsKICAgICAgICBpZiAodHlwZSA9PSAnVScpCiAgICAgICAgewogICAgICAgICAgICBpbnQgaSwgdjsKICAgICAgICAgICAgY2luID4+IGkgPj4gdjsKICAgICAgICAgICAgaS0tOwogICAgICAgICAgICBmcmVxW2FbaV1dLS07CiAgICAgICAgICAgIGludCBiID0gbG9nMihhW2ldKTsKICAgICAgICAgICAgYml0c1tiXS0tOwogICAgICAgICAgICBhW2ldID0gdjsKICAgICAgICAgICAgZnJlcVt2XSsrOwogICAgICAgICAgICBiID0gbG9nMih2KTsKICAgICAgICAgICAgYml0c1tiXSsrOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmICh0eXBlID09ICd8JykKICAgICAgICB7CiAgICAgICAgICAgIGludCB2OwogICAgICAgICAgICBjaW4gPj4gdjsKICAgICAgICAgICAgY291dCA8PCBmcmVxW3ZdIDw8ICdcbic7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYgKHR5cGUgPT0gJyYnKQogICAgICAgIHsKICAgICAgICAgICAgaW50IHY7CiAgICAgICAgICAgIGNpbiA+PiB2OwogICAgICAgICAgICBjb3V0IDw8IG4gPDwgJ1xuJzsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgaW50IHY7CiAgICAgICAgICAgIGNpbiA+PiB2OwogICAgICAgICAgICBpbnQgbXMgPSBsb2cyKHYpOwogICAgICAgICAgICBjb3V0IDw8IGJpdHNbbXNdIDw8ICdcbic7CiAgICAgICAgfQogICAgfQp9CgpzaWduZWQgbWFpbigpCnsKICAgIHBlcF9HdWFyZGlvbGE7CiAgICBpbygpOwogICAgaW50IHQgPSAxOwogICAgLy8gY2luID4+IHQ7CiAgICB3aGlsZSAodC0tKQogICAgICAgIEd1YXJkaW9sYSgpOwoKICAgIHJldHVybiAwOwp9