#include <iostream>
using namespace std;
typedef long long ll;
const int MAXN=100000+10;
int Left[MAXN],Right[MAXN];
void link(int l,int r)
{
Left[r]=l;
Right[l]=r;
}
int main()
{
int n,m,cas=1;
while(scanf("%d%d",&n,&m)==2)
{
for(int i=0;i<=n;i++)
link(i,i+1);
Left[0]=n;
Right[n]=0;
int op,flag=0,x,y;
while(m--)
{
scanf("%d",&op);
if(op==4)
{
flag=!flag;
continue;
}
scanf("%d%d",&x,&y);
if(op==3&&Right[y]==x) swap(x,y);
if(op!=3&&flag) op=3-op;
if(op==1&&Left[y]==x) continue;
if(op==2&&Right[y]==x) continue;
int lx=Left[x],ly=Left[y],rx=Right[x],ry=Right[y];
if(op==1)
{
link(lx,rx);
link(ly,x);
link(x,y);
}
else if(op==2)
{
link(lx,rx);
link(x,ry);
link(y,x);
}
else if(op==3)
{
if(Right[x]==y) {
link(lx,y);
link(y,x);
link(x,ry);
} else {
link(lx,y);
link(y,rx);
link(ly,x);
link(x,ry);
}
}
}
ll sum=0;
int b=0;
for(int i=1;i<=n;i++)
{
b=Right[b];
if(i%2) sum+=b;
}
if(flag&&n%2==0) sum=(ll)n*(n+1)/2-sum;
printf("Case %d: %lld\n",cas++,sum);
}
return 0;
}