#include<stdio.h>
 #include<string.h>
 #include<stdlib.h>
 #define MAX 100
 
 struct queue{
     int x,y,z,steps;
 }que[MAX*MAX*MAX*2+1];
 int map[MAX+2][MAX+2][MAX+2];
 int di[][3]={1,0,0,0,1,0,0,0,1,-1,0,0,0,-1,0,0,0,-1};
 int BFS();
 int inmap(int ax,int by,int cz);
 int a,b,c,T;
 
 int BFS()
 {
     int i,j,tx,ty,tz,front=0,rear=1;
     que[0].x=1,que[0].y=1,que[0].z=1,que[0].steps=0;
     map[0][0][0]=1;
     while(front<rear)
     {
         if(que[front].x == a && que[front].y== b && que[front].z== c)
         {
             return que[front].steps;
         }
         for(i=0;i<6;i++)
         {
             tx=que[front].x+di[i][0],ty=que[front].y+di[i][1],tz=que[front].z+di[i][2];
             if(inmap(tx,ty,tz) && !map[tx][ty][tz])
             {
                 map[tx][ty][tz]=1;
                 que[rear].x=tx,que[rear].y=ty,que[rear].z=tz;
                 que[rear++].steps=que[front].steps+1;
             }
         }
         front++;
     }
     return -1;
 }
 
 int inmap(int ax,int by,int cz)
 {
     if(ax>0 && ax <= a && by >0 && by <=b && cz>0 && cz <= c)
         return 1;
     else
         return 0;
 }
 
 int main()
 {
     int cases,judge;
     int i,j,k;
     scanf("%d",&cases);
     while(cases--)
     {
         memset(map,0,sizeof(map));
         scanf("%d%d%d%d",&a,&b,&c,&T);
         for(i=1;i<=a;i++)
         {
             for(j=1;j<=b;j++)
             {
                 for(k=1;k<=c;k++)
                     scanf("%d",&map[i][j][k]);
             }
         }
         if(a+b+c-3 > T)
             printf("-1\n");
         else{
             judge=BFS();
         if(judge == -1)
             printf("-1\n");
         else
             if(judge <= T)
                 printf("%d\n",judge);
             else
                 printf("-1\n");
         }
     }
     return 0;
 }
/**************************************************************
	Problem: 2234
	User: admin
	Language: C++
	Result: Accepted
	Time:41 ms
	Memory:36540 kb
****************************************************************/