#include <iostream>
#include <queue>
#define MAX 101
using namespace std;
// 4 7 8 6 3 1
typedef struct{
int x,y, z;
}dir;
queue<dir> q;
int m,n,h;
int arr[MAX][MAX][MAX];
bool visited[MAX][MAX][MAX];
int dx[6] = {0,0,1,-1,0,0};
int dy[6] = {1,-1,0,0,0,0};
int dz[6] = {0,0,0,0,1,-1};
int fcnt;
int cnt; // 1의 개수
bool flag;
int day;
void output(){
for(int i = 0;i<m;++i){
for(int j =0;j<n;++j){
for(int k =0;k<h;++k){
cout<< arr[i][j][k]<<" ";
}
cout<<endl;
}
cout<<endl;
}
}
bool isInRange(dir d){
return
(0<= d.x && d.x < m
&& 0<= d.y && d.y < n
&& 0<= d.z && d.z < h);
}
void bfs(){
while(!q.empty()){
++day; cnt = q.size();
for(int k = 0;k<fcnt;++k){
dir tmp = q.front();
q.pop();
for(int i = 0;i<6;++i){
int nextX = tmp.x + dx[i];
int nextY = tmp.y + dy[i];
int nextZ = tmp.z + dz[i];
if(!visited[nextX][nextY][nextZ] && isInRange({nextX,nextY,nextZ})){
visited[nextX][nextY][nextZ] = true;
arr[nextX][nextY][nextZ]= 1;
q.push({nextX,nextY,nextZ});
flag = true;
}
}
}
}
}
int main(void){
bool hasZero = false;
cin>>m>>n>>h;
for(int i = 0;i<h;++i){
for(int j = 0;j<n;++j){
for(int k = 0;k<m;++k){
cin>>arr[i][j][k];
if(arr[i][j][k] == -1)
visited[i][j][k] = true;
else if(arr[i][j][k] == 1){
q.push({i,j,k});
visited[i][j][k] = true;
fcnt++;
}
else if(arr[i][j][k] == 0)
hasZero = true;
}
}
}
if(!hasZero){
cout<<0<<endl;
return 0;
}
bfs();
for(int i = 0;i<h;++i){
for(int j = 0;j<n;++j){
for(int k = 0;k<m;++k){
if(arr[i][j][k] == 0){
cout<<-1<<endl;
return 0;
}
}
}
}
cout<<day<<endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8cXVldWU+CiNkZWZpbmUgTUFYIDEwMQp1c2luZyBuYW1lc3BhY2Ugc3RkOwovLyA0IDcgOCA2IDMgMQp0eXBlZGVmIHN0cnVjdHsKICAgIGludCB4LHksIHo7Cn1kaXI7CnF1ZXVlPGRpcj4gcTsKaW50IG0sbixoOwppbnQgYXJyW01BWF1bTUFYXVtNQVhdOwpib29sIHZpc2l0ZWRbTUFYXVtNQVhdW01BWF07CmludCBkeFs2XSA9IHswLDAsMSwtMSwwLDB9OwppbnQgZHlbNl0gPSB7MSwtMSwwLDAsMCwwfTsKaW50IGR6WzZdID0gezAsMCwwLDAsMSwtMX07CgppbnQgZmNudDsKaW50IGNudDsgLy8gMeydmCDqsJzsiJgKYm9vbCBmbGFnOwppbnQgZGF5OwoKdm9pZCBvdXRwdXQoKXsKICAgIGZvcihpbnQgaSA9IDA7aTxtOysraSl7CiAgICAgICAgZm9yKGludCBqID0wO2o8bjsrK2opewogICAgICAgICAgICBmb3IoaW50IGsgPTA7azxoOysrayl7CiAgICAgICAgICAgICAgICBjb3V0PDwgYXJyW2ldW2pdW2tdPDwiICI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY291dDw8ZW5kbDsKICAgICAgICB9CiAgICAgICAgY291dDw8ZW5kbDsKICAgIH0KfQoKYm9vbCBpc0luUmFuZ2UoZGlyIGQpewogICAgcmV0dXJuIAogICAgKDA8PSBkLnggJiYgZC54IDwgbSAKICAgICYmIDA8PSBkLnkgJiYgZC55IDwgbiAKICAgICYmIDA8PSBkLnogJiYgZC56IDwgaCk7Cn0KCnZvaWQgYmZzKCl7CgogICAgd2hpbGUoIXEuZW1wdHkoKSl7CiAgICAgICAgKytkYXk7IGNudCA9IHEuc2l6ZSgpOwogICAgICAgIGZvcihpbnQgayA9IDA7azxmY250Oysrayl7CiAgICAgICAgICAgIGRpciB0bXAgPSBxLmZyb250KCk7CiAgICAgICAgICAgIHEucG9wKCk7CiAgICAgICAgICAgIGZvcihpbnQgaSA9IDA7aTw2OysraSl7CiAgICAgICAgICAgICAgICBpbnQgbmV4dFggPSB0bXAueCArIGR4W2ldOwogICAgICAgICAgICAgICAgaW50IG5leHRZID0gdG1wLnkgKyBkeVtpXTsKICAgICAgICAgICAgICAgIGludCBuZXh0WiA9IHRtcC56ICsgZHpbaV07CiAgICAgICAgICAgICAgICBpZighdmlzaXRlZFtuZXh0WF1bbmV4dFldW25leHRaXSAmJiBpc0luUmFuZ2Uoe25leHRYLG5leHRZLG5leHRafSkpewogICAgICAgICAgICAgICAgICAgIHZpc2l0ZWRbbmV4dFhdW25leHRZXVtuZXh0Wl0gPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGFycltuZXh0WF1bbmV4dFldW25leHRaXT0gMTsKICAgICAgICAgICAgICAgICAgICBxLnB1c2goe25leHRYLG5leHRZLG5leHRafSk7IAogICAgICAgICAgICAgICAgICAgIGZsYWcgPSB0cnVlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgIH0KCiAgICB9Cn0KCmludCBtYWluKHZvaWQpewogICAgYm9vbCBoYXNaZXJvID0gZmFsc2U7CgogICAgY2luPj5tPj5uPj5oOwogICAgZm9yKGludCBpID0gMDtpPGg7KytpKXsKICAgICAgICBmb3IoaW50IGogPSAwO2o8bjsrK2opewogICAgICAgICAgICBmb3IoaW50IGsgPSAwO2s8bTsrK2spewogICAgICAgICAgICAgICAgY2luPj5hcnJbaV1bal1ba107CiAgICAgICAgICAgICAgICBpZihhcnJbaV1bal1ba10gPT0gLTEpCiAgICAgICAgICAgICAgICAgICAgdmlzaXRlZFtpXVtqXVtrXSA9IHRydWU7CiAgICAgICAgICAgICAgICBlbHNlIGlmKGFycltpXVtqXVtrXSA9PSAxKXsKICAgICAgICAgICAgICAgICAgICBxLnB1c2goe2ksaixrfSk7CiAgICAgICAgICAgICAgICAgICAgdmlzaXRlZFtpXVtqXVtrXSA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgZmNudCsrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgZWxzZSBpZihhcnJbaV1bal1ba10gPT0gMCkKICAgICAgICAgICAgICAgICAgICBoYXNaZXJvID0gdHJ1ZTsKCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICAKICAgIGlmKCFoYXNaZXJvKXsKICAgICAgICBjb3V0PDwwPDxlbmRsOwogICAgICAgIHJldHVybiAwOwogICAgfQoKICAgIGJmcygpOwogICAgZm9yKGludCBpID0gMDtpPGg7KytpKXsKICAgICAgICBmb3IoaW50IGogPSAwO2o8bjsrK2opewogICAgICAgICAgICBmb3IoaW50IGsgPSAwO2s8bTsrK2spewogICAgICAgICAgICAgICAgaWYoYXJyW2ldW2pdW2tdID09IDApewogICAgICAgICAgICAgICAgICAgIGNvdXQ8PC0xPDxlbmRsOwogICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGNvdXQ8PGRheTw8ZW5kbDsKICAgIHJldHVybiAwOwp9