#include<iostream>
#include<math.h>
#include<set>
using namespace std;
set<int> s;
int n, m, d[100010][25];
int main(){
cin.tie(NULL);
cout.tie(NULL);
ios_base::sync_with_stdio(false);
int a, b, c, i;
cin>>n>>m;
while(m--){
cin>>a;
if(a==1){
cin>>b>>c;
if(d[b][c]==0){
d[b][c]=1;
d[b][0]+=pow(2.0, c);
cout<<d[b][0]<<"\n";
}
}
if(a==2){
cin>>b>>c;
if(d[b][c]){
d[b][c]=0;
d[b][0]-=pow(2.0, c);
}
}
if(a==3){
cin>>b;
if(d[b][20]) d[b][0]-=pow(2.0, 20);
d[b][20]=0;
for(i=19; i>=1; i--)
if(d[b][i]){
d[b][i]=0;
d[b][i+1]=1;
}
d[b][0]*=2;
}
else{
cin>>b;
if(d[b][1]) d[b][0]-=2;
d[b][1]=0;
for(i=20; i>=2; i--)
if(d[b][i]){
d[b][i]=0;
d[b][i-1]=1;
}
d[b][0]/=2;
}
}
for(i=1; i<=n; i++) s.insert(d[i][0]);
cout<<s.size();
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPG1hdGguaD4KI2luY2x1ZGU8c2V0Pgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpzZXQ8aW50PiBzOwppbnQgbiwgbSwgZFsxMDAwMTBdWzI1XTsKCmludCBtYWluKCl7CgljaW4udGllKE5VTEwpOwoJY291dC50aWUoTlVMTCk7Cglpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKCWludCBhLCBiLCBjLCBpOwoJY2luPj5uPj5tOwoJd2hpbGUobS0tKXsKCQljaW4+PmE7CgkJaWYoYT09MSl7CgkJCWNpbj4+Yj4+YzsKCQkJaWYoZFtiXVtjXT09MCl7CgkJCQlkW2JdW2NdPTE7CgkJCQlkW2JdWzBdKz1wb3coMi4wLCBjKTsgCgkJCQljb3V0PDxkW2JdWzBdPDwiXG4iOwoJCQl9CgkJfQoJCWlmKGE9PTIpewoJCQljaW4+PmI+PmM7CgkJCWlmKGRbYl1bY10pewoJCQkJZFtiXVtjXT0wOwoJCQkJZFtiXVswXS09cG93KDIuMCwgYyk7CgkJCX0KCQl9CgkJaWYoYT09Myl7CgkJCWNpbj4+YjsKCQkJaWYoZFtiXVsyMF0pIGRbYl1bMF0tPXBvdygyLjAsIDIwKTsKCQkJZFtiXVsyMF09MDsKCQkJZm9yKGk9MTk7IGk+PTE7IGktLSkKCQkJCWlmKGRbYl1baV0pewoJCQkJCWRbYl1baV09MDsKCQkJCQlkW2JdW2krMV09MTsKCQkJCX0KCQkJZFtiXVswXSo9MjsKCQl9CgkJZWxzZXsKCQkJY2luPj5iOwoJCQlpZihkW2JdWzFdKSBkW2JdWzBdLT0yOwoJCQlkW2JdWzFdPTA7CgkJCWZvcihpPTIwOyBpPj0yOyBpLS0pCgkJCQlpZihkW2JdW2ldKXsKCQkJCQlkW2JdW2ldPTA7CgkJCQkJZFtiXVtpLTFdPTE7CgkJCQl9CgkJCWRbYl1bMF0vPTI7CgkJfQoJfQoJZm9yKGk9MTsgaTw9bjsgaSsrKSBzLmluc2VydChkW2ldWzBdKTsKCWNvdXQ8PHMuc2l6ZSgpOwp9