{ #### Programme qui s'ecrit lui-meme en entier }
var aS:array[1..11] of string; k,n:integer;

procedure W(S:string); begin
for k:=1 to length(S) do if S[k]=#96 then write('''')
else write(S[k]);
writeln; end;

begin writeln('{ #### Programme qui s''ecrit lui-meme en entier }');
aS[ 1]:='var aS:array[1..11] of string; k,n:integer;';
aS[ 2]:='';
aS[ 3]:='procedure W(S:string); begin';
aS[ 4]:='for k:=1 to length(S) do if S[k]=#96 then write(````)';
aS[ 5]:='else write(S[k]);';
aS[ 6]:='writeln; end;';
aS[ 7]:='';
aS[ 8]:='begin writeln(`{ #### Programme qui s``ecrit lui-meme en entier }`);';
aS[ 9]:='for n:=1 to  8 do W(aS[n]);';
aS[10]:='for n:=1 to 11 do writeln(`aS[`,n:2,`]:=```, aS[n], ```;`);';
aS[11]:='for n:=9 to 11 do W(aS[n]); end.';
for n:=1 to  8 do W(aS[n]);
for n:=1 to 11 do writeln('aS[',n:2,']:=''', aS[n], ''';');
for n:=9 to 11 do W(aS[n]); end.
