program antivirus;
var
M, N1, N2, N3, N4, T, p1, p2, p3, p4, test, i : LongInt;
F1, F2, F3, F4 : AnsiString;
corrispondenza : boolean;
begin
{
decommenta le due righe seguenti se vuoi leggere/scrivere da file
assign(input, 'input.txt'); reset(input);
assign(output, 'output.txt'); rewrite(output);
}
ReadLn(T);
for test:=1 to T do begin
ReadLn();
ReadLn(N1, N2, N3, N4);
ReadLn(M);
ReadLn(F1);
ReadLn(F2);
ReadLn(F3);
ReadLn(F4);
for p1:= 1 to N1-M do
for p2:= 1 to N2-M do
for p3:=1 to N3-M do
for p4:= 1 to N4-M do
begin
corrispondenza:=true;
for i:= 0 to M do
if (F1[p1 + i] <> F2[p2 + i]) or ( F2[p2 + i] <> F3[p3 + i]) or (F3[p3 + i] <> F4[p4 + i]) then begin corrispondenza:= false; continue; end
else if corrispondenza=true then
begin
Write('Case #', test, ': ');
WriteLn(p1-1, ' ', p2-1, ' ', p3-1, ' ', p4-1);
end;
end;
end;
end.
cHJvZ3JhbSBhbnRpdmlydXM7Cgp2YXIKICAgIE0sIE4xLCBOMiwgTjMsIE40LCBULCBwMSwgcDIsIHAzLCBwNCwgdGVzdCwgaSA6IExvbmdJbnQ7CiAgICBGMSwgRjIsIEYzLCBGNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBBbnNpU3RyaW5nOwogICAgY29ycmlzcG9uZGVuemEgOiBib29sZWFuOwoKYmVnaW4KewogICAgZGVjb21tZW50YSBsZSBkdWUgcmlnaGUgc2VndWVudGkgc2UgdnVvaSBsZWdnZXJlL3Njcml2ZXJlIGRhIGZpbGUKICAgIGFzc2lnbihpbnB1dCwgICdpbnB1dC50eHQnKTsgIHJlc2V0KGlucHV0KTsKICAgIGFzc2lnbihvdXRwdXQsICdvdXRwdXQudHh0Jyk7IHJld3JpdGUob3V0cHV0KTsKfQoKICAgIFJlYWRMbihUKTsKICAgIGZvciB0ZXN0Oj0xIHRvIFQgZG8gYmVnaW4KICAgICAgICBSZWFkTG4oKTsKICAgICAgICBSZWFkTG4oTjEsIE4yLCBOMywgTjQpOwoKICAgICAgICBSZWFkTG4oTSk7CgogICAgICAgIFJlYWRMbihGMSk7CgogICAgICAgIFJlYWRMbihGMik7CgogICAgICAgIFJlYWRMbihGMyk7CgogICAgICAgIFJlYWRMbihGNCk7CiAgICAgICAKICAgICAgICBmb3IgcDE6PSAxIHRvICBOMS1NIGRvIAogICAgICAgICAgICAgIGZvciBwMjo9IDEgdG8gTjItTSAgZG8gCiAgICAgICAgICAgICAgICAgICBmb3IgcDM6PTEgIHRvIE4zLU0gIGRvIAogICAgICAgICAgICAgICAgICAgICAgIGZvciBwNDo9IDEgdG8gTjQtTSBkbyAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ycmlzcG9uZGVuemE6PXRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaTo9IDAgdG8gTSBkbyAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoRjFbcDEgKyBpXSA8PiBGMltwMiArIGldKSBvciAoIEYyW3AyICsgaV0gPD4gRjNbcDMgKyBpXSkgb3IgKEYzW3AzICsgaV0gPD4gRjRbcDQgKyBpXSkgdGhlbiAgYmVnaW4gY29ycmlzcG9uZGVuemE6PSBmYWxzZTsgY29udGludWU7IGVuZCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlICBpZiBjb3JyaXNwb25kZW56YT10cnVlIHRoZW4gIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdyaXRlKCdDYXNlICMnLCB0ZXN0LCAnOiAnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdyaXRlTG4ocDEtMSwgJyAnLCBwMi0xLCAnICcsIHAzLTEsICcgJywgcDQtMSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZDsKICAgZW5kOwplbmQuICAg