#include <stdio.h>
int main() {
int n, k;
int alive[n][n];
int count[n][n];
int times[n][n];
for (int i=0; i<n; i++)
for (int j=0; j<n; j++) {
scanf("%d", &alive
[i
][j
]); times[i][j] = 0;
}
for (int i=0; i<k; i++) {
for (int j=0; j<n; j++)
for (int l=0; l<n; l++)
count[j][l] = 0;
for (int j=0; j<n; j++)
for (int l=0; l<n; l++)
if ( alive[j][l] == 1 ) {
times[j][l]++;
for (int x=j-1; x<=j+1; x++)
for (int y=l-1; y<=l+1; y++)
if ( x>=0 && x<n && y>=0 && y<n && !(x==j && y==l) )
count[x][y]++;
}
/*
for (int j=0; j<n; j++) {
for (int l=0; l<n; l++)
printf("%d ", count[j][l]);
printf("\n");
}
printf("\n");
*/
for (int j=0; j<n; j++)
for (int l=0; l<n; l++)
if ( alive[j][l] == 1 && ( count[j][l] < 2 || count[j][l] > 3 ) )
alive[j][l] = 0;
else if ( alive[j][l] == 0 && count[j][l] == 3 )
alive[j][l] = 1;
/*
for (int j=0; j<n; j++) {
for (int l=0; l<n; l++)
printf("%d ", alive[j][l]);
printf("\n");
}
printf("\n");
*/
}
for (int i=0; i<n; i++) {
for (int j=0; j<n; j++) {
if ( alive[i][j] == 1 )
times[i][j]++;
}
}
int find = 0;
for (int i=k+1; i>0; i--)
for (int x=n-1; x>=0; x--)
for (int y=n-1; y>=0; y--)
if ( times[x][y] == i && find == 0) {
find = 1;
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgbWFpbigpIHsKCglpbnQgbiwgazsKCXNjYW5mKCIlZCVkIiwgJm4sICZrKTsKCWludCBhbGl2ZVtuXVtuXTsKCWludCBjb3VudFtuXVtuXTsKCWludCB0aW1lc1tuXVtuXTsKCglmb3IgKGludCBpPTA7IGk8bjsgaSsrKQoJCWZvciAoaW50IGo9MDsgajxuOyBqKyspIHsKCQkJc2NhbmYoIiVkIiwgJmFsaXZlW2ldW2pdKTsKCQkJdGltZXNbaV1bal0gPSAwOwoJCX0KCglmb3IgKGludCBpPTA7IGk8azsgaSsrKSB7CgkJCgkJZm9yIChpbnQgaj0wOyBqPG47IGorKykKCQkJZm9yIChpbnQgbD0wOyBsPG47IGwrKykKCQkJCWNvdW50W2pdW2xdID0gMDsKCgkJZm9yIChpbnQgaj0wOyBqPG47IGorKykKCQkJZm9yIChpbnQgbD0wOyBsPG47IGwrKykKCQkJCWlmICggYWxpdmVbal1bbF0gPT0gMSApIHsKCQkJCQl0aW1lc1tqXVtsXSsrOwoJCQkJCWZvciAoaW50IHg9ai0xOyB4PD1qKzE7IHgrKykKCQkJCQkJZm9yIChpbnQgeT1sLTE7IHk8PWwrMTsgeSsrKQoJCQkJCQkJaWYgKCB4Pj0wICYmIHg8biAmJiB5Pj0wICYmIHk8biAmJiAhKHg9PWogJiYgeT09bCkgKQoJCQkJCQkJCWNvdW50W3hdW3ldKys7CgkJCQl9Ci8qCgkJZm9yIChpbnQgaj0wOyBqPG47IGorKykgewoJCQlmb3IgKGludCBsPTA7IGw8bjsgbCsrKQoJCQkJcHJpbnRmKCIlZCAiLCBjb3VudFtqXVtsXSk7CgkJCXByaW50ZigiXG4iKTsKCQl9CgkJcHJpbnRmKCJcbiIpOwoqLwoJCWZvciAoaW50IGo9MDsgajxuOyBqKyspCgkJCWZvciAoaW50IGw9MDsgbDxuOyBsKyspCgkJCQlpZiAoIGFsaXZlW2pdW2xdID09IDEgJiYgKCBjb3VudFtqXVtsXSA8IDIgfHwgY291bnRbal1bbF0gPiAzICkgKQoJCQkJCWFsaXZlW2pdW2xdID0gMDsKCQkJCWVsc2UgaWYgKCBhbGl2ZVtqXVtsXSA9PSAwICYmIGNvdW50W2pdW2xdID09IDMgKQoJCQkJCWFsaXZlW2pdW2xdID0gMTsKLyoKCQlmb3IgKGludCBqPTA7IGo8bjsgaisrKSB7CgkJCWZvciAoaW50IGw9MDsgbDxuOyBsKyspCgkJCQlwcmludGYoIiVkICIsIGFsaXZlW2pdW2xdKTsKCQkJcHJpbnRmKCJcbiIpOwoJCX0KCQlwcmludGYoIlxuIik7CiovCgl9CgoJZm9yIChpbnQgaT0wOyBpPG47IGkrKykgewoJCWZvciAoaW50IGo9MDsgajxuOyBqKyspIHsKCQkJaWYgKCBhbGl2ZVtpXVtqXSA9PSAxICkKCQkJCXRpbWVzW2ldW2pdKys7CgkJCXByaW50ZigiJWQgIiwgYWxpdmVbaV1bal0pOwoJCX0KCQlwcmludGYoIlxuIik7Cgl9CgoJaW50IGZpbmQgPSAwOwoJZm9yIChpbnQgaT1rKzE7IGk+MDsgaS0tKQoJCWZvciAoaW50IHg9bi0xOyB4Pj0wOyB4LS0pCgkJCWZvciAoaW50IHk9bi0xOyB5Pj0wOyB5LS0pCgkJCQlpZiAoIHRpbWVzW3hdW3ldID09IGkgJiYgZmluZCA9PSAwKSB7CgkJCQkJcHJpbnRmKCIlZCAlZCIsIHgrMSwgeSsxKTsKCQkJCQlmaW5kID0gMTsKCQkJCX0KCglyZXR1cm4gMDsKfQo=