#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]<<" ";
}
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++) cout<<d[i][0]<<" ";
cout<<"\n";
}
cout<<s.size();
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPG1hdGguaD4KI2luY2x1ZGU8c2V0Pgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpzZXQ8aW50PiBzOwppbnQgbiwgbSwgZFsxMDAwMTBdWzI1XTsKCmludCBtYWluKCl7CgljaW4udGllKE5VTEwpOwoJY291dC50aWUoTlVMTCk7Cglpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKCWludCBhLCBiLCBjLCBpOwoJY2luPj5uPj5tOwoJd2hpbGUobS0tKXsKCQljaW4+PmE7CgkJaWYoYT09MSl7CgkJCWNpbj4+Yj4+YzsKCQkJaWYoZFtiXVtjXT09MCl7CgkJCQlkW2JdW2NdPTE7CgkJCQlkW2JdWzBdKz1wb3coMi4wLCBjKTsgCgkJCX0KCQkJY291dDw8ZFtiXVswXTw8IiAiOwoJCX0KCQlpZihhPT0yKXsKCQkJY2luPj5iPj5jOwoJCQlpZihkW2JdW2NdKXsKCQkJCWRbYl1bY109MDsKCQkJCWRbYl1bMF0tPXBvdygyLjAsIGMpOwoJCQl9CgkJfQoJCWlmKGE9PTMpewoJCQljaW4+PmI7CgkJCWlmKGRbYl1bMjBdKSBkW2JdWzBdLT1wb3coMi4wLCAyMCk7CgkJCWRbYl1bMjBdPTA7CgkJCWZvcihpPTE5OyBpPj0xOyBpLS0pCgkJCQlpZihkW2JdW2ldKXsKCQkJCQlkW2JdW2ldPTA7CgkJCQkJZFtiXVtpKzFdPTE7CgkJCQl9CgkJCWRbYl1bMF0qPTI7CgkJfQoJCWVsc2V7CgkJCWNpbj4+YjsKCQkJaWYoZFtiXVsxXSkgZFtiXVswXS09MjsKCQkJZFtiXVsxXT0wOwoJCQlmb3IoaT0yMDsgaT49MjsgaS0tKQoJCQkJaWYoZFtiXVtpXSl7CgkJCQkJZFtiXVtpXT0wOwoJCQkJCWRbYl1baS0xXT0xOwoJCQkJfQoJCQlkW2JdWzBdLz0yOwoJCX0KCQlmb3IoaT0xOyBpPD1uOyBpKyspIGNvdXQ8PGRbaV1bMF08PCIgIjsKCQljb3V0PDwiXG4iOwoJfQoJY291dDw8cy5zaXplKCk7Cn0=