#include #include #include #include using namespace std; typedef long long ll; const int dx[]={-1, 0, 0, 1, 0, 0}; const int dy[]={ 0,-1, 0, 0, 1, 0}; const int dz[]={ 0, 0,-1, 0, 0, 1}; inline int compress(int n, int *x, int *v) { memcpy(v,x,sizeof(int)*n); v[n]=-1; sort(v,v+n+1); int m=unique(v,v+n+1)-v; for(int i=0;i stk; stk.push(0); occ[0][0][0]=-1; while(!stk.empty()) { int v=stk.top(); stk.pop(); int x=v&0xFF,y=(v>>8)&0xFF,z=(v>>16)&0xFF; for(int d=0;d<6;++d) { int nx=x+dx[d],ny=y+dy[d],nz=z+dz[d]; if(nx>=0&&ny>=0&&nz>=0&&nx