#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
****************************************************************/