#include <bits/stdc++.h>
using namespace std;
void fastio() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
}
static const int dx[8] = {1, 1, 1, 0, 0, -1, -1, -1};
static const int dy[8] = {1, 0, -1, 1, -1, 1, 0, -1};
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);
}
void dfs(int x, int y) {
if (!valid(x, y) || vis[x][y] || grid[x][y] == '0')
return;
vis[x][y] = true;
for (int i = 0; i < 8; i++) {
dfs(x + dx[i], y + dy[i]);
}
}
int count_war_eagles() {
int cnt = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (grid[i][j] == '1' && !vis[i][j]) {
cnt++;
dfs(i, j);
}
}
}
return cnt;
}
void solve() {
int t = 1;
while (cin >> n) {
grid.assign(n, vector<char>(n));
vis.assign(n, vector<bool>(n, false));
for (int i = 0; i < n; i++) {
string line;
cin >> line;
for (int j = 0; j < n; j++)
grid[i][j] = line[j];
}
cout << "Image number " << t++ << " contains " << count_war_eagles() << " war eagles.\n";
}
}
int main() {
#ifndef ONLINE_JUDGE
freopen("Bumble.in", "r", stdin);
#endif
fastio();
solve();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIGZhc3RpbygpIHsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShudWxscHRyKTsKICAgIGNvdXQudGllKG51bGxwdHIpOwp9CgpzdGF0aWMgY29uc3QgaW50IGR4WzhdID0gezEsIDEsIDEsIDAsIDAsIC0xLCAtMSwgLTF9OwpzdGF0aWMgY29uc3QgaW50IGR5WzhdID0gezEsIDAsIC0xLCAxLCAtMSwgMSwgMCwgLTF9OwoKaW50IG47CnZlY3Rvcjx2ZWN0b3I8Y2hhcj4+IGdyaWQ7CnZlY3Rvcjx2ZWN0b3I8Ym9vbD4+IHZpczsKCmJvb2wgdmFsaWQoaW50IHgsIGludCB5KSB7CiAgICByZXR1cm4gKHggPj0gMCAmJiB4IDwgbiAmJiB5ID49IDAgJiYgeSA8IG4pOwp9Cgp2b2lkIGRmcyhpbnQgeCwgaW50IHkpIHsKICAgIGlmICghdmFsaWQoeCwgeSkgfHwgdmlzW3hdW3ldIHx8IGdyaWRbeF1beV0gPT0gJzAnKQogICAgICAgIHJldHVybjsKICAgIHZpc1t4XVt5XSA9IHRydWU7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IDg7IGkrKykgewogICAgICAgIGRmcyh4ICsgZHhbaV0sIHkgKyBkeVtpXSk7CiAgICB9Cn0KCmludCBjb3VudF93YXJfZWFnbGVzKCkgewogICAgaW50IGNudCA9IDA7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbjsgaisrKSB7CiAgICAgICAgICAgIGlmIChncmlkW2ldW2pdID09ICcxJyAmJiAhdmlzW2ldW2pdKSB7CiAgICAgICAgICAgICAgICBjbnQrKzsKICAgICAgICAgICAgICAgIGRmcyhpLCBqKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBjbnQ7Cn0KCnZvaWQgc29sdmUoKSB7CiAgICBpbnQgdCA9IDE7CiAgICB3aGlsZSAoY2luID4+IG4pIHsKICAgICAgICBncmlkLmFzc2lnbihuLCB2ZWN0b3I8Y2hhcj4obikpOwogICAgICAgIHZpcy5hc3NpZ24obiwgdmVjdG9yPGJvb2w+KG4sIGZhbHNlKSk7CiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICAgICAgc3RyaW5nIGxpbmU7CiAgICAgICAgICAgIGNpbiA+PiBsaW5lOwogICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IG47IGorKykKICAgICAgICAgICAgICAgIGdyaWRbaV1bal0gPSBsaW5lW2pdOwogICAgICAgIH0KICAgICAgICBjb3V0IDw8ICJJbWFnZSBudW1iZXIgIiA8PCB0KysgPDwgIiBjb250YWlucyAiIDw8IGNvdW50X3dhcl9lYWdsZXMoKSA8PCAiIHdhciBlYWdsZXMuXG4iOwogICAgfQp9CgppbnQgbWFpbigpIHsKICAgICNpZm5kZWYgT05MSU5FX0pVREdFCiAgICBmcmVvcGVuKCJCdW1ibGUuaW4iLCAiciIsIHN0ZGluKTsKICAgICNlbmRpZgogICAgZmFzdGlvKCk7CiAgICBzb2x2ZSgpOwogICAgcmV0dXJuIDA7Cn0K