Listing ROBOT.PAS 
Program Robot; 
const MaxMN=100; 
var t:array[1..MaxMN,1..MaxMN] of 0..1; 
m,n,solutie:Word; 
Procedure Citeste_date; 
var fi:Text; 
i,j:Word; 
begin 
Assign(fi,'ROBOT.IN'); 
Reset(fi); 
Readln(fi,m,n); 
for i:=1 to m do 
begin 
for j:=1 to n do Read(fi,t[i,j]); 
Readln(fi) 
end; 
Close(fi) 
end; 
Procedure Scrie_rezultate; 
var fo:Text; 
begin 
Assign(fo,'ROBOT.OUT'); ReWrite(fo); 
Writeln(fo,solutie); 
Close(fo) 
end; 
Procedure Calculeaza; 
var i,ii,j:Word; 
u:array[0..MaxMN] of Word; 
begin 
for i:=2 to m do u[i]:=0; 
u[1]:=1; 
for j:=1 to n do 
begin 
i:=M+1; U[0]:=1; 
while i>0 do 
begin 
repeat 
Dec(i) 
until (i=0) or (t[i,j]=1); 
if i=0 then Break; 
ii:=i; 
while u[ii]=0 do Dec(ii); 
u[ii]:=0; u[i]:=1; 
i:=ii 
end 
end; 
solutie:=0; 
for i:=1 to m do solutie:=solutie+u[i] 
end; 
Begin 
Citeste_date; 
Calculeaza; 
Scrie_rezultate 
End.