#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int MAXN = 100001, MAXM = 100001;
int first[MAXN], nexte[MAXM];
int u[MAXN], v[MAXN];
int T, M, ID;
int ans;
int vis[MAXN];
void dfs(int s)
{
for(int i = first[s]; i != -1; i = nexte[i])
if(!vis[v[i]])
{
vis[v[i]] = 1;
dfs(v[i]);
ans++;
}
}
int main()
{
//freopen("in.txt", "r", stdin);
scanf("%d", &T);
for(int t = 1; t <= T; t++)
{
memset(first, -1, sizeof(first));
scanf("%d%d", &M, &ID);
for(int i = 0; i < M; i++)
{
scanf("%d%d", &v[i], &u[i]);
nexte[i] = first[u[i]];
first[u[i]] = i;
}
ans = 0;
memset(vis, 0, sizeof(vis));
vis[ID] = 1;
dfs(ID);
printf("Case #%d: %d\n", t, ans);
}
return 0;
}
/**************************************************************
Problem: 2235
User: admin
Language: C++
Result: Accepted
Time:197 ms
Memory:4372 kb
****************************************************************/