#include <cstdio>
#include <algorithm>
int main()
{
int left[100005], right[100005];
int n, m;
int i, k, l = 0;
long long j;
int a, b;
while (~scanf("%d %d", &n, &m))
{
for (i = 1; i <= n; ++i)
{
left[i] = i - 1;
right[i] = i + 1;
}
right[0] = 1;
left[n + 1] = n;
for (i = 0; i < m; ++i)
{
scanf("%d", &a);
switch(a)
{
case 1:
scanf("%d %d", &a, &b);
right[left[a]] = right[a];
left[right[a]] = left[a];
left[a] = left[b];
right[a] = b;
right[left[b]] = a;
left[b] = a;
break;
case 2:
scanf("%d %d", &a, &b);
right[left[a]] = right[a];
left[right[a]] = left[a];
left[a] = b;
right[a] = right[b];
left[right[b]] = a;
right[b] = a;
break;
case 3:
scanf("%d %d", &a, &b);
if (right[a] == b)
{
right[left[a]] = b;
left[right[b]] = a;
right[a] =right[b];
left[b] = left[a];
left[a] = b;
right[b] = a;
#ifdef DEBUG
printf("case 3 1\n");
#endif
}
else if (left[a] == b)
{
right[left[b]] = a;
left[right[a]] = b;
left[a] = left[b];
right[b] = right[a];
right[a] = b;
left[b] = a;
#ifdef DEBUG
printf("case 3 2\n");
#endif
}
else
{
right[left[a]] = b;
left[right[a]] = b;
right[left[b]] = a;
left[right[b]] = a;
std::swap(left[a], left[b]);
std::swap(right[a], right[b]);
#ifdef DEBUG
printf("case 3 3\n");
#endif
}
break;
case 4:
for (i = 0; i <= n + 1; ++i)
{
std::swap(left[i], right[i]);
}
break;
}
}
for (i = 1; i <= n; ++i)
{
if (!left[i] || left[i] == n + 1)
{
break;
}
}
for (j = 0, k = 1; i > 0 && i <= n; ++k)
{
#ifdef DEBUG
printf("%d ", i);
#endif
if (k % 2)
{
j += i;
}
i = right[i];
}
printf("Case %d: %lld\n", ++l, j);
}
}
RE了,完全想不到,5555