#include <bits/stdc++.h>
using namespace std;

void fastio() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
}

int n;
vector<vector<char>> grid;
vector<vector<bool>> vis;

bool valid(int x, int y) {
    return (x >= 0 && x < n && y >= 0 && y < n);
}

int count_x = 0;
void dfs(int x, int y) {
    if (!valid(x, y) || grid[x][y] == '.' || vis[x][y])
        return;
    
    vis[x][y] = true;
    if (grid[x][y] == 'x')
        count_x++;
    
    dfs(x + 1, y);
    dfs(x - 1, y);
    dfs(x, y + 1);
    dfs(x, y - 1);
}

int count_ships() {
    int cnt = 0;
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            if ((grid[i][j] == 'x' || grid[i][j] == '@') && !vis[i][j]) {
                count_x = 0;
                dfs(i, j);
                if (count_x > 0)
                    cnt++;
            }
        }
    }
    return cnt;
}

void solve(int t) {
    cin >> n;

    grid.resize(n, vector<char>(n));
    vis.assign(n, vector<bool>(n, false));
    for (int i = 0; i < n; ++i)
        for (int j = 0; j < n; ++j)
            cin >> grid[i][j];
    
    count_x = 0;
    cout << "Case " << t << ": " << count_ships() << '\n';
    
    grid.clear();
    vis.clear();
}

int main() {
    fastio();
    int t = 1;
    cin >> t;
    for (int i = 1; i <= t; ++i)
        solve(i);
    return 0;
}