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

int main(int argc,char *argv[])
{
 char n1[64],n2[64];
 FILE *fp1,*fp2;
 char buf1[512],buf2[512];

 if(argc != 3 && argc != 4){
   printf("Usage: %s file1 file2 [-]\n",argv[0]);
   exit(0);
 }

 if((fp1 = fopen(argv[1],"r")) == NULL){
   printf("Cannot open %s\n",argv[1]);
   exit(0);
 }

 if((fp2 = fopen(argv[2],"r")) == NULL){
   printf("Cannot open %s\n",argv[2]);
   exit(0);
 }

 strcpy(n2,"\0");
 while(!feof(fp1)){
   if(fgets(buf1,sizeof(buf1),fp1)==NULL) break;
   if(strncmp(buf1,"#",1)==0) continue;
   if(*(buf1+strlen(buf1)-1)=='\n') *(buf1+strlen(buf1)-1)='\0';
   sscanf(buf1,"%s",n1);
   fseek(fp2,0,SEEK_SET);
   while(strcmp(n1,n2)!=0){
     if(fgets(buf2,sizeof(buf2),fp2)==NULL) break;
     if(strncmp(buf2,"#",1)==0) continue;
     sscanf(buf2,"%s",n2);
   }
   if(argc==3 && strcmp(n1,n2)==0) printf("%s\t%s",buf1,buf2);
   if(argc==4 && strcmp(n1,n2)!=0) printf("%s\n",buf1);
 }
 fclose(fp1);
 fclose(fp2);
 return(0);
}
