const struct {/*}=0;(*/int i;}s={0};
#include <stdio.h>
char *prg[20]={/*)prg: array [0..19] of pchar=(
'*/"const struct {/*}=0;(*/int i;}s={0};@!#include <stdio.h>@!char *prg[20]="/*',(*/,/*)
'*/"{/*)prg: array [0..19] of pchar=(@!@0,(*/,/*)@!@1,(*/,/*)@!@2,(*/,/*)@!"/*',(*/,/*)
'*/"@3,(*/,/*)@!@4,(*/,/*)@!@5,(*/,/*)@!@6,(*/,/*)@!@7,(*/,/*)@!@8,"/*',(*/,/*)
'*/"(*/,/*)@!@9,(*/,/*)@!@a,(*/,/*)@!@b,(*/,/*)@!@c,(*/,/*)@!@d,(*/,/*)"/*',(*/,/*)
'*/"@!@e,(*/,/*)@!@f,(*/,/*)@!@g,(*/,/*)@!@h,(*/,/*)@!@i,(*/,/*)@!@j);"/*',(*/,/*)
'*/"(*/};/*)@!procedure vypis(p:pchar);@!var b:boolean;@!begin b:=false"/*',(*/,/*)
'*/";@!while p^<>#0 do begin if p^=chr(64) then begin@!inc(p)"/*',(*/,/*)
'*/"; case p^ of@!@$0@$..@$9@$:write(@$@$@$@$,prg[ord(p^)-ord(@$0@$)],"/*',(*/,/*)
'*/"@$@$@$@$);@!@$a@$..@$z@$:write(@$@$@$@$,prg[ord(p^)-ord(@$a@$)+10],"/*',(*/,/*)
'*/"@$@$@$@$);@!@$/@$:write(@$@/@$);@!@$$@$:write(@$@$@$@$);@!@$#@$:write"/*',(*/,/*)
'*/"(@$@#@$);@!@$!@$:writeln;@!end end else if p^=@$@#@$ then b:="/*',(*/,/*)
'*/"not b@!else if b then write(p^);@!inc(p) end end;@!var i:integer;@!"/*',(*/,/*)
'*/"begin for i:=0 to 19 do vypis(prg[i]) end.@!(*/void vypis(char *p)"/*',(*/,/*)
'*/"{@!while(*p){@!if(*p==64){p++;@!if(*p>=@$0@$ && *p<=@$9@$)printf"/*',(*/,/*)
'*/"(@#@$*/@/@#%s@/@#/*@$@#,prg[*p-@$0@$]);@!else if(*p>=@$a@$ && *p<="/*',(*/,/*)
'*/"@$z@$)printf(@#@$*/@/@#%s@/@#/*@$@#,prg[*p-@$a@$+10]);@!else switch"/*',(*/,/*)
'*/"(*p){@!case @$/@$:printf(@#@/@/@#);break;@!case @$$@$:printf"/*',(*/,/*)
'*/"(@#@$@#);break;@!case @$#@$:printf(@#@/@#@#);break;@!case @$!@$:"/*',(*/,/*)
'*/"printf(@#@/n@#);break;@!}} else printf(@#%c@#,*p); p++;}}@!int main"/*',(*/,/*)
'*/"(void){@!int i; for(i=0;i<20;i++)vypis(prg[i]); return 0; /*){*/}@!@!"/*');(*/};/*)
procedure vypis(p:pchar);
var b:boolean;
begin b:=false;
while p^<>#0 do begin if p^=chr(64) then begin
inc(p); case p^ of
'0'..'9':write('''',prg[ord(p^)-ord('0')],'''');
'a'..'z':write('''',prg[ord(p^)-ord('a')+10],'''');
'/':write('\');
'$':write('''');
'#':write('"');
'!':writeln;
end end else if p^='"' then b:=not b
else if b then write(p^);
inc(p) end end;
var i:integer;
begin for i:=0 to 19 do vypis(prg[i]) end.
(*/void vypis(char *p){
while(*p){
if(*p==64){p++;
if(*p>='0' && *p<='9')printf("'*/\"%s\"/*'",prg[*p-'0']);
else if(*p>='a' && *p<='z')printf("'*/\"%s\"/*'",prg[*p-'a'+10]);
else switch(*p){
case '/':printf("\\");break;
case '$':printf("'");break;
case '#':printf("\"");break;
case '!':printf("\n");break;
}} else printf("%c",*p); p++;}}
int main(void){
int i; for(i=0;i<20;i++)vypis(prg[i]); return 0; /*){*/}


