var
al: char ;
ab, bb, ac: string ;
ar: array [ 1 .. 100 , 1 .. 100 ] of char ;
m, n, i, j, k: integer ;
aaa: boolean ;
procedure f( x, y: integer ; ab: string ) ;
var
i: longint ;
begin
if r- y+ 1 >= k then
begin
ac: = ab;
for i: = y+ 1 to y+ k- 1 do
begin
ac: = ac+ ar[ x, i] ;
end ;
if ac= bb then aaa: = true ;
end ;
if s- x+ 1 >= k then
begin
ac: = ab;
for i: = x+ 1 to x+ k- 1 do
begin
ac: = ac+ ar[ i, y] ;
end ;
if bb= ac then aaa: = true ;
end ;
if y>= k then
begin
ac: = ab;
for i: = y- 1 downto y- k+ 1 do
begin
ac: = ac+ ar[ x, i]
end ;
if bb= ac then aaa: = true ;
end ;
if x>= k then
begin
ac: = ab;
for i: = x- 1 downto x- k+ 1 do
begin
ac: = ac+ ar[ i, y] ;
end ;
if bb= ac then aaa: = true ;
end ;
if ( r- y+ 1 >= k) and ( s- x+ 1 >= k) then
begin
ac: = bb;
for i: = 1 to k- 1
begin
ac: = ac+ ar[ x+ i, y+ i] ;
end ;
if ac= bb then aaa: = true ;
end ;
if ( y>= k) and ( x>= k) then
begin
ac: = bb;
for i: = 1 to k- 1 do
begin
ac: = ac+ ar[ x- i, y- i] ;
end ;
if ac= bb then aaa: = true ;
end ;
if ( s- x+ 1 >= k) and ( y>= k) then
begin
ac: = bb;
for i: = 1 to k- 1 do
begin
ac: = ac+ ar[ x+ i, y- i] ;
end ;
if ac= bb then aaa: = true ;
end ;
if ( x>= k) and ( r- y+ 1 >= k) then
begin
ac: = bb;
for i: = 1 to k- 1 do
begin
ac: = ac+ ar[ x- i, y+ 1 ] ;
end ;
if ac= bb then aaa: = true ;
end ;
end ;
begin
readln ( m, n) ;
for i: = 1 to m do
begin
for j: = 1 to n do
begin
read ( ar[ i, j] ) ;
if j<>n read ( al) ;
end ;
readln ;
end ;
readln ( z) ;
for i: = 1 to z do
begin
readln ( bb) ;
k: = length( bb) ;
ab: = bb[ 1 ] ;
aaa: = false ;
for j: = 1 to m do
begin
for i: = 1 to n do
begin
if ab= ar[ i, j] then
begin
f( i, j, ab) ;
end ;
end ;
end ;
if aaa= true then
writeln ( bb, ' ' , 'T' ) ;
end ;
readln ;
end .
dmFyCmFsOmNoYXI7CmFiLGJiLGFjOnN0cmluZzsKYXI6YXJyYXlbMS4uMTAwLDEuLjEwMF0gb2YgY2hhcjsKbSxuLGksaixrOmludGVnZXI7CmFhYTpib29sZWFuOwpwcm9jZWR1cmUgZih4LHk6aW50ZWdlcjthYjpzdHJpbmcpOwp2YXIKaTpsb25naW50OwpiZWdpbgppZiByLXkrMT49ayB0aGVuCiAgIGJlZ2luCiAgICAgYWM6PWFiOwogICAgIGZvciBpOj15KzEgdG8geStrLTEgZG8KICAgICAgICBiZWdpbgogICAgICAgICBhYzo9YWMrYXJbeCxpXTsKICAgICAgICBlbmQ7CiAgICAgaWYgYWM9YmIgdGhlbiBhYWE6PXRydWU7CiAgIGVuZDsKCmlmIHMteCsxPj1rIHRoZW4KICAgYmVnaW4KICAgICBhYzo9YWI7CiAgICAgZm9yIGk6PXgrMSB0byB4K2stMSBkbwogICAgICAgIGJlZ2luCiAgICAgICAgIGFjOj1hYythcltpLHldOwogICAgICAgIGVuZDsKICAgICBpZiBiYj1hYyB0aGVuIGFhYTo9dHJ1ZTsKICAgZW5kOwoKaWYgeT49ayB0aGVuCiAgIGJlZ2luCiAgICAgYWM6PWFiOwogICAgIGZvciBpOj15LTEgZG93bnRvIHktaysxIGRvCiAgICAgICBiZWdpbgogICAgICAgIGFjOj1hYythclt4LGldCiAgICAgICBlbmQ7CiAgICAgaWYgYmI9YWMgdGhlbiBhYWE6PXRydWU7CiAgIGVuZDsKCmlmIHg+PWsgdGhlbgogICBiZWdpbgogICAgICBhYzo9YWI7CiAgICAgIGZvciBpOj14LTEgZG93bnRvIHgtaysxIGRvCiAgICAgICAgIGJlZ2luCiAgICAgICAgICAgYWM6PWFjK2FyW2kseV07CiAgICAgICAgIGVuZDsKICAgICAgaWYgYmI9YWMgdGhlbiBhYWE6PXRydWU7CiAgIGVuZDsKaWYgKHIteSsxPj1rKSBhbmQgKHMteCsxPj1rKSB0aGVuCiAgYmVnaW4KICAgIGFjOj1iYjsKICAgIGZvciBpOj0xIHRvIGstMQogICAgICAgYmVnaW4KICAgICAgICAgYWM6PWFjK2FyW3graSx5K2ldOwogICAgICAgZW5kOyAKICAgIGlmIGFjPWJiIHRoZW4gYWFhOj10cnVlOwogIGVuZDsKCmlmICh5Pj1rKSBhbmQgKHg+PWspIHRoZW4KICBiZWdpbgogICBhYzo9YmI7CiAgIGZvciBpOj0xIHRvIGstMSBkbwogICAgYmVnaW4KICAgICAgYWM6PWFjK2FyW3gtaSx5LWldOwogICAgZW5kOwogICBpZiBhYz1iYiB0aGVuIGFhYTo9dHJ1ZTsKICBlbmQ7CmlmIChzLXgrMT49aykgYW5kICh5Pj1rKSB0aGVuCiBiZWdpbiAgICAgICAgICAgICAgICAgCiAgIGFjOj1iYjsKICAgIGZvciBpOj0xIHRvIGstMSBkbwogICAgIGJlZ2luCiAgICAgIGFjOj1hYythclt4K2kseS1pXTsKICAgICBlbmQ7CiAgICBpZiBhYz1iYiB0aGVuIGFhYTo9dHJ1ZTsKIGVuZDsKCmlmICh4Pj1rKSBhbmQgKHIteSsxPj1rKSB0aGVuCiAgIGJlZ2luICAgIAogICAgYWM6PWJiOwogICAgIGZvciBpOj0xIHRvIGstMSBkbwogICAgICAgYmVnaW4KICAgICAgICBhYzo9YWMrYXJbeC1pLHkrMV07CiAgICAgICBlbmQ7CiAgICAgaWYgYWM9YmIgdGhlbiBhYWE6PXRydWU7CiAgIGVuZDsKCmVuZDsKYmVnaW4KcmVhZGxuKG0sbik7CmZvciBpOj0xIHRvIG0gZG8KICBiZWdpbgogICAgZm9yIGo6PTEgdG8gbiBkbwogICAgICAgYmVnaW4KICAgICAgICAgcmVhZChhcltpLGpdKTsKICAgICAgICAgaWYgajw+biByZWFkKGFsKTsKICAgICAgIGVuZDsKICAgIHJlYWRsbjsKICBlbmQ7CnJlYWRsbih6KTsKZm9yIGk6PTEgdG8geiBkbwogICBiZWdpbgogICAgICByZWFkbG4oYmIpOwogICAgICBrOj1sZW5ndGgoYmIpOwogICAgICBhYjo9YmJbMV07CiAgICAgIGFhYTo9ZmFsc2U7CiAgICAgIGZvciBqOj0xIHRvIG0gZG8KICAgICAgICBiZWdpbgogICAgICAgICAgZm9yIGk6PTEgdG8gbiBkbwogICAgICAgICAgICAgYmVnaW4KICAgICAgICAgICAgICAgaWYgYWI9YXJbaSxqXSB0aGVuCiAgICAgICAgICAgICAgICAgYmVnaW4KICAgICAgICAgICAgICAgICAgZihpLGosYWIpOwogICAgICAgICAgICAgICAgIGVuZDsKICAgICAgICAgICAgIGVuZDsKICAgICAgICBlbmQ7CiAgICAgICBpZiBhYWE9dHJ1ZSB0aGVuCiAgICAgICAgICAgIHdyaXRlbG4oYmIsJyAnLCdUJyk7CiAgIGVuZDsKIHJlYWRsbjsKZW5kLiAg
compilation info
Free Pascal Compiler version 2.2.0 [2009/11/16] for i386
Copyright (c) 1993-2007 by Florian Klaempfl
Target OS: Linux for i386
Compiling prog.pas
prog.pas(11,5) Error: Identifier not found "r"
prog.pas(21,5) Error: Identifier not found "s"
prog.pas(50,6) Error: Identifier not found "r"
prog.pas(50,21) Error: Identifier not found "s"
prog.pas(54,8) Fatal: Syntax error, "DO" expected but "BEGIN" found
Fatal: Compilation aborted
Error: /usr/bin/ppc386 returned an error exitcode (normal if you did not specify a source file to be compiled)
stdout