#include <stdio.h>
#include <process.h>
#include <string.h>

#define YK (20*2)

void main(int argc,char *argv[]){
	int i,j,ct,cr,cnt=0;
	char sg[20000],sr[20000],buf[256];
	FILE *fp_in;
	FILE *fp_out;
	
	if(argc==1){
		argv[1]="kani_in.txt";
	}
	
	if((fp_in=fopen(argv[1],"r"))==NULL){
		printf("%s\n",argv[1]);
		printf("Can't open File\n");
		exit(1);
	}
	
	if((fp_out=fopen("kani_out.txt","w"))==NULL){
		printf("Can't open File\n");
		exit(1);
	}
	
	while(fgets(buf,256,fp_in)!=NULL){
		ct=cr=0;
		while(buf[ct]!='\n' && buf[ct]!='\0'){
			ct++;
		}
		buf[ct]='\0';
		for(i=0;i<YK-ct;i++)
			strcat(buf," ");
		while(cr<YK){
			sg[cnt]=buf[cr];
			cr++;
			cnt++;
		}
	}
	
	sg[cnt]='\0';
	for(i=0;i<YK*YK/2-cnt;i++){
		strcat(sg," ");
	}
	cnt=0;
	
	for(i=0;i<YK;i+=2){
		for(j=0;j<YK/2;j++){
			sr[cnt  ]=sg[j*YK+i];
			sr[cnt+1]=sg[j*YK+i+1];
			cnt+=2;
		}
	}
	
	sr[cnt]='\0';
	cnt=0;
	
	for(i=0;i<YK/2;i++){
		for(j=0;j<YK/2;j++){
			sg[cnt  ]=sr[i*YK+YK-2-j*2  ];
			sg[cnt+1]=sr[i*YK+YK-2-j*2+1];
			cnt+=2;
		}
	}
	
	sg[cnt]='\0';
	cnt=0;
	while(sg[cnt]!='\0'){
		putc(sg[cnt  ],fp_out);
		putc(sg[cnt+1],fp_out);
		cnt+=2;
		if(cnt%YK==0){
			fputs("\n",fp_out);
		}
	}
	
	fclose(fp_in);
	fclose(fp_out);
	
	if((fp_out=fopen("kani_out.htm","w"))==NULL){
		printf("Can't open File\n");
		exit(1);
	}
	
	fputs("<HTML>\n<HEAD><TITLE></TITLE></HEAD>\n<BODY>\n",fp_out);
	fputs("<TABLE ALIGN=CENTER BORDER=0>\n",fp_out);
	cnt=0;
	
	while(sg[cnt]!='\0'){
		if(cnt%YK==0){
			fputs("<tr>",fp_out);
		}
		fputs("<td>",fp_out);
		putc(sg[cnt  ],fp_out);
		putc(sg[cnt+1],fp_out);
		fputs("</td>",fp_out);
		cnt+=2;
	
		if(cnt%YK==0){
			fputs("</tr>",fp_out);
			fputs("\n",fp_out);
		}
	}
	
	fputs("<tr>",fp_out);
	for(i=0;i<YK/2;i++){
		fputs("<td><font color=#ffffff></td>",fp_out);
	}
	
	fputs("</tr>\n",fp_out);
	fputs("</TABLE>\n",fp_out);
	fputs("</BODY>\n</HTML>",fp_out);
	fclose(fp_out);
}