semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
void main()
{
	char s1[100],s2[100],c;
	int js1[150]={0},js2[150]={0},b=0,d,e,i,j,k,l1,l2;
	scanf("%s %s",s1,s2);
	l1=strlen(s1);
	l2=strlen(s2);
	if(l1!=l2)
		printf("NO");
	else
	{
		for(i=0;i<l1;i++)
		{
			for(j=65;j<123;j++)
				if(s1[i]==j)
					js1[j]++;
		}
		
		for(i=0;i<l1;i++)
		{
			for(j=65;j<123;j++)
				if(s2[i]==j)
					js2[j]++;
		}
		for(i=65;i<123;i++)
			if(js1[i]!=js2[i]) {b=1;printf("NO");break;}
			if(b==0) printf("YES");








	}



}
int main()
{
	char a[20],b[20],*p1,*p2;
	int i=0;
	scanf("%s%s",a,b);
	if(strlen(a)!=strlen(b))
		printf("NO");
	else
	{
        for(p1=a;p1<a+strlen(a);p1++)
		    for(p2=b;p2<b+strlen(b);p2++)
				if(*p1==*p2)
					*p1=*p2='0';
		for(p1=a;p1<a+strlen(a);p1++)
			if(*p1=='0')
				i++;
		if(i==strlen(a))
			printf("YES");
		else
			printf("NO");
	}
	return 0;
}
void main()
{
	int i,pa[58]={0},pb[58]={0};
	char a[100]={0},b[100]={0},*p,*q;
	p=a;q=b;
	scanf("%s %s",a,b);
	
	
	for (p=a;*p!='\0';p++)
		pa[*p-'A']++;
	for(q=b;*q!='\0';q++)
		pb[*q-'A']++;
    for(i=0;i<58;i++)
	{
		if(pa[i]!=pb[i])
		{
			printf("NO");
			break;
		}
	}
		if(i==58)
			printf("YES");
}
int main()
{
	char zifu[2][100];
	scanf("%s",zifu[0]);
	scanf("%s",zifu[1]);
	int t;
	t=strlen(zifu[0]);
	int k;
	k=strlen(zifu[1]);
	if (t!=k)
	{
		printf("NO");
	
		return 0;
	}
	int i,j;
	for (i=0;i<t;i++)
	{
		for (j=0;j<t;j++)
		{
			if (zifu[0][i]==zifu[1][j])
			{
				zifu[0][i]=0;
				zifu[1][j]=0;
				break;

			}
			if (j==t-1&&zifu[0][i]!=zifu[1][j])
			{
				printf("NO");
				
				return 0;

			}
		}
		if (i==t-1)
		{
			printf("YES");
		}
	}


	
	
	return 0;

}
void change(char a[])
{
	int i,j,k;
	char temp;
	k=strlen(a);
	for(i=0;i<k;i++)
		for(j=i+1;j<=k;j++)
			if(a[i]<a[j])
			{temp=a[i];a[i]=a[j];a[j]=temp;}
}




void main()
{
	int l1,l2,k=0,i;
	char a[100],b[100];
	scanf("%s%s",a,b);
	l1=strlen(a);
	l2=strlen(b);
	if(l1==l2)
	{
		change(a);
		change(b);
		for(i=0;i<l1;i++)
		{
			if(a[i]!=b[i])k=1;
		}
		if(k==0)printf("YES");
		else printf("NO");
	}
	else printf("NO");
}
int main()
{
    char ch1[100],ch2[100],temp;
    int l,i,j;
    
    
    cin>>ch1>>ch2;
      
      
    if(strlen(ch1)==strlen(ch2))
    {
           l=strlen(ch1);
           for(i=0;i<l;i++)//???? 
              for(j=0;j<l-i-1;j++)
              {
                  if(ch1[j]>ch1[j+1]) 
                  {
                      temp=ch1[j];
                      ch1[j]=ch1[j+1];
                      ch1[j+1]=temp;                
                  }               
                  if(ch2[j]>ch2[j+1])
                  {
                      temp=ch2[j];
                      ch2[j]=ch2[j+1];
                      ch2[j+1]=temp;               
                  }
              } 
              
             if(strcmp(ch1,ch2)==0)
                cout<<"YES";
             else
                cout<<"NO";                    
    }
    else
    {
        cout<<"NO";
    }
 
    return 0;
}
void rearrange(char c[])
{
	int i,j,len;
	char temp;
	len=strlen(c);
	for(i=0;i<len;i++)
	{
		for(j=i+1;j<len;j++)
			if(c[i]>c[j])
			{
				temp=c[i];
				c[i]=c[j];
				c[j]=temp;
			}
	}
}


void compare(char c1[],char c2[])
{
	int i,j,total=0;
	int len1,len2;
	len1=strlen(c1);
	len2=strlen(c2);
	if(len1!=len2)
		printf("NO");
	else if(len1==len2)
	{
		for(i=0;i<len1;i++)
		{
			if(c1[i]==c2[i])
				total++;
		}
		if(total==len1)
			printf("YES");
		else
			printf("NO");
	}
}

void main()
{
	char c1[100],c2[100];
	scanf("%s%s",c1,c2);
	rearrange(c1);
	rearrange(c2);
	compare(c1,c2);
}
/*
 * name.cpp
 *
 *  Created on: 2010-12-31
 *      Author: 10308
 */
int main(){
	char a1[100],a2[100];
	cin.getline(a1,100);
	int l=strlen(a1);
	for(int i=0;i<l;i++){
		if(a1[i]==' '){
			for(int j=i+1;j<l;j++){
				a2[j-i-1]=a1[j];
			}
			a1[i]='\0';
			a2[l-i-1]='\0';
			break;
		}
	}
	int k;
	if(strlen(a1)!=strlen(a2)){
		cout<<"NO"<<endl;
		return 0;
	}
	for(int i=0;i<strlen(a1);i++){
		for(int j=0;j<strlen(a2);j++){
			if(a2[j]==a1[i]){
				for(k=j;k<strlen(a2)-1;k++){
					a2[k]=a2[k+1];
				}
				a2[k]='\0';
			}
		}
	}
	if(strlen(a2)==0)cout<<"YES"<<endl;
	else cout<<"NO"<<endl;
	return 0;
}
void main()
{
	char a[500],b[500];
	int i,x,j=0,k=0,m=0;
	for(i=0;((a[i]=getchar())!=' ');i++)
		j++;
	for(i=0;((b[i]=getchar())!='\n');i++)
		k++;
	if(j!=k)
		printf("NO");
	else
	{
		for(i=0;i<j;i++)
			for(x=0;x<j;x++)
				if(b[x]==a[i])
				{
					b[x]='0';
					break;
				}
		for(i=0;i<j;i++)
			if(b[x]=='0')
			m++;
	if(m==j)
		printf("YES");
	else
	printf("NO");		
	}
}
void jud(char a[],char b[])
{
	int i,c[2][52]={0},m=0;
	for(i=0;a[i]!=0;i++)
	{
		if(a[i]<91) c[0][a[i]-65]++;
		else c[0][a[i]-71]++;
	}
	for(i=0;b[i]!=0;i++)
	{
		if(b[i]<91) c[1][b[i]-65]++;
		else c[1][b[i]-71]++;
	}
	for(i=0;i<52;i++) if(c[0][i]!=c[1][i]) m++;
	if(m==0) printf("YES");
	else printf("NO");
}
int main()
{
	char a[30],b[30];
	scanf("%s%s",a,b);
	jud(a,b);
}
void main()
{
	int i,j,la,lb,min;
	char t;
	char a[100],b[100];
	scanf("%s %s",a,b);
	la=strlen(a);
	lb=strlen(b);
	for(i=0;i<la;i++)
	{
		min=i;
		for(j=i+1;j<la;j++)
			if(a[j]<a[min]) min=j;
		t=a[i];
		a[i]=a[min];
		a[min]=t;
	}
	for(i=0;i<lb;i++)
	{
		min=i;
		for(j=i+1;j<lb;j++)
			if(b[j]<b[min]) min=j;
		t=b[i];
		b[i]=b[min];
		b[min]=t;
	}
	if(strcmp(a,b)==0) printf("YES");
	else printf("NO");
}
main()
{
	char a[100],b[100],c;
	int i,d[26]={0},r;

	scanf("%s",a);
    scanf("%s",b);
   
	for (i=0;i<strlen(a);i++)
		for (c='a';c<='z';c++)
            if (c==a[i])
				d[c-'a']++;
   
	for (i=0;i<strlen(b);i++)
		for (c='a';c<='z';c++)
            if (c==b[i])
				d[c-'a']--;
    r=0;
	for (i=0;i<26;i++)
		if (d[i]!=0)
			r=1;
    
	if (r==0)
		printf("YES");
	else printf("NO");
}
main()
{char string1[50],string2[50];
 scanf("%s%s",string1,string2);
 int i,j,k,len1,len2;
 char t;
 len1=strlen(string1);
 len2=strlen(string2);
 for(i=0;i<len1-1;i++)
	{k=i;
     for(j=i+1;j<len1;j++)
		 if(string1[j]>string1[k])k=j;
	 if(k!=i)
	 {t=string1[i];string1[i]=string1[k];string1[k]=t;}
	}
 for(i=0;i<len2-1;i++)
	{k=i;
     for(j=i+1;j<len2;j++)
		 if(string2[j]>string2[k])k=j;
	 if(k!=i)
	 {t=string2[i];string2[i]=string2[k];string2[k]=t;}
	}
 if(strcmp(string1,string2)==0)printf("YES");
 else printf("NO");
}
char a[1000]={' '},b[1000]={' '};

int main()
{
	scanf("%s %s",a,b);
	int len;
	int wall,curr;
	len=strlen(a);
	for(wall=len-1;wall>0;wall--){
		for(curr=0;curr<wall;curr++){
			if(a[curr]>a[curr+1]){
				char temp;
				temp=a[curr];a[curr]=a[curr+1];a[curr+1]=temp;
			}
		}
	}
	len=strlen(b);
	for(wall=len-1;wall>0;wall--){
		for(curr=0;curr<wall;curr++){
			if(b[curr]>b[curr+1]){
				char temp;
				temp=b[curr];b[curr]=b[curr+1];b[curr+1]=temp;
			}
		}
	}
	if(strcmp(a,b)==0)printf("YES");
	else printf("NO");
	return 0;
}
/*
 * 253.cpp
 *
 *  Created on: 2011-12-29
 *      Author: think
 */
int main(){
	char a[100]="";
	cin.getline(a,100);
	char c1[50]="",c2[50]="";
	int i,j;
	for(i=0;a[i]!=' ';i++){
		c1[i]=a[i];
	}
	int length1=i;
	for(i++;i<50&&a[i]!=0;i++){
		c2[i-length1-1]=a[i];
	}
	int length2=i-length1-1;
	if(length1!=length2){
		cout<<"NO"<<endl;
		return 0;
	}
	for(i=0,j=0;i<length1;i++){
		for(j=0;j<length2;j++){
			if(c2[j]==c1[i]){
				c2[j]=' ';break;
			}
		}
		if(j==length2){
			cout<<"NO"<<endl;
			return 0;
		}
	}
	cout<<"YES"<<endl;
	return 0;
}
int main()
{
	char letter1[100],letter2[100],*le1,*le2;
	le1=letter1;
	le2=letter2;
	scanf("%s %s",le1,le2);
	int _break;
	if(strlen(letter1)==strlen(letter2))
	{
		for(;*le1!='\0';le1++)
		{
			le2=letter2;
			_break=0;
			for(;*le2!='\0';le2++)
			{
				if(*le1==*le2)
				{
					*le2='0';
					_break=1;
					break;
				}
			}
			if(_break==0)
			{
				printf("NO\n");
				_break=2;
				break;
			}
		}
		if(_break!=2)
			printf("YES\n");
	}
	else
		printf("NO\n");
	return 0;
}
char a[100]={0};
char b[100]={0};
int main(){
	int i,j;
	char e;
	scanf("%s",a);
	scanf("%s",b);
	for(i=0;i<strlen(a);i++){
		if(a[i]!=b[i]){
			for(j=i+1;j<strlen(a);j++){
				if(a[j]==b[i]){
					e=a[j];
					a[j]=a[i];
					a[i]=e;
				}
			}
		}
		if(a[i]!=b[i]){
			printf("NO");
			break;
		}
	}
	if(!strcmp(a,b)) printf("YES");
	else{
		if(i==strlen(a)) printf("NO"); 
	}
	return 0;	
}
void main()
{
	int c[128]={0},l1,l2,i,b=0;
	char s1[1000],s2[1000];
	scanf("%s%s",s1,s2);
	l1=strlen(s1);
	l2=strlen(s2);
	for(i=0;i<l1;i++)
		c[s1[i]]++;
	for(i=0;i<l2;i++)
		c[s2[i]]--;
	for(i=0;i<128;i++)
		b=b||c[i];
	if(!b)
		printf("YES");
	else
		printf("NO");
}
int main()
{
	int i,j,l1,l2,c[100]={0};
	char a[100],b[100];
	cin>>a>>b;
	l1=strlen(a);
	l2=strlen(b);
	if(l1==l2)
	{
		for(i=0;i<=l1-1;i++)
			for(j=0;j<=l2-1;j++)
				if(a[i]==b[j]&&c[j]==0)
				{
					c[j]=1;
					break;
				}
		for(i=0;i<=l1-1;i++)
			if(c[i]==0)
				break;
		if(i==l1)
			cout<<"YES"<<endl;
		else 
			cout<<"NO"<<endl;
	}
	else
		cout<<"NO"<<endl;
	return 0;
}
int f(char a[],char b[])
{
	int l1,l2,i,j;
	char q;
	l1=strlen(a);
	l2=strlen(b);
	if(l1!=l2)
		return(0);
	for(i=0;i<=l1;i++)
	{for(j=i;j<=l2;j++)
	{if(b[j]==a[i])
	{q=b[j];
		b[j]=b[i];
		b[i]=q;break;}
	}
	if(a[i]!=b[i])
		return(0);
	}
	return(1);
}
void main()
{
	char str[20],str1[20];
	int c;
	scanf("%s%s",str,str1);
	c=f(str,str1);
	if(c==1)
		printf("YES");
	else printf("NO");
}
void main()
{
	int i,j,k,m,n,*p,l1,l2,c=0;
	char a[100],b[100];
	scanf("%s %s",a,b);
	l1=strlen(a);
	l2=strlen(b);
	if(l2!=l1)printf("NO");
	else 
		{
			for(i=0;i<l1;i++)
		for(j=0;j<l2;j++)
			if(a[i]==b[j])
			{
				c++;
				b[j]='\0';
				break;
			}
	if(c==l1)printf("YES");
	else printf("NO");
	}
}
int main()
{
	int i,d=0,j,x;
	char a[500];
	char b[500];
	scanf("%s %s",a,b);
	if(strlen(a)==strlen(b))
	{
		x=strlen(a);
		for(i=0;i<x;i++)
		{
			d=0;
			for(j=0;j<x;j++)
			{
				if(a[i]==b[j])
				{
					d=1;
					b[j]=2;
					break;
				}
			}
			if(d==0)
			{
				break;
			}
		}
		if(d==1)
		{
			for(i=0;i<x;i++)
			{
				if(b[i]!=2)
				{
					d=0;
					break;
				}
			}
		}
	}
	if(d==1)
	{
		printf("YES");
	}
	else
	{
		printf("NO");
	}
	
	return 0;
}
int main()
{
	char a[100]={0},b[100]={0},t;
	int i,j,l;
	scanf("%s",a);
	scanf("%s",b);
	if (strlen(a)!=strlen(b)) 
		printf("NO");
	else 
		{
			l=strlen(a);
			for (i=0;i<l;i++)
				for (j=i;j<l;j++)
					if (a[i]==b[j])
					{
						t=b[i];
						b[i]=b[j];
						b[j]=t;
					}
			if (strcmp(a,b)==0) printf("YES");
			else printf("NO");
		}
	return 0;
}
void arrange(char w[20]);

void main()
{
	char w1[20] = {0};
        char w2[20] = {0} ;
/*	while (scanf("%s%s",w1,w2)!=EOF)
	{*/
	scanf("%s%s",w1,w2);	
	arrange(w1);
		arrange(w2);
		if (strcmp(w1,w2))
			printf("NO\n");
		else
			printf("YES\n");
	/*}*/
}

void arrange(char w[20])
{
	int i,j;
	char c;
	for (i=19;i>0;i--)
	{
		for (j=0;j<i;j++)
		{
			if (w[j]<w[j+1])
			{
				c=w[j];
				w[j]=w[j+1];
				w[j+1]=c;
			}
		}
	}
}
void main()
{
	char a[50]={'\0'};char b[50]={'\0'};
	int i,j;
	scanf("%s %s",a,b);
	if (strlen(a)!=strlen(b)) goto null;
	for (i=0;i<strlen(a);i++)
	{
		for (j=0;j<strlen(b);j++)
			if (a[i]==b[j])
			{
				b[j]='0';
				break;
			}
		if (j==strlen(b)) goto null;
	}
	printf("YES\n");
	goto allright;
null: printf("NO\n");
allright:;
}
int main()
{
	char a[1000]="",b[1000]="";
	scanf("%s",a);
	scanf("%s",b);
	int counta,countb;
	int i,j;
	for(i=0;i<=127;i++)
	{ counta=0;countb=0;
		for(j=0;a[j]!='\0';j++)
			if(a[j]==i) counta++;
		for(j=0;b[j]!='\0';j++)
			if(b[j]==i)countb++;
		if(counta!=countb)break;
	}
	if(i==128)printf("YES");
	else printf("NO");
	return 0;
}
int main()
{
	char a[1001],b[1001];
	int c[100]={0};
	int i,n=0,l1,l2;
	scanf("%s%s",a,b);
	l1=strlen(a);
	l2=strlen(b);
	if(l1==l2)
	{
		for(i=0;i<l1;i++)
			c[a[i]-'a']++;
		for(i=0;i<l2;i++)
			c[b[i]-'a']--;
		for(i=0;i<100;i++)
		{
			if(c[i]!=0)
			{
				printf("NO");
				n=1;
				break;
			}
		}
	    if(n==0)printf("YES");
	}
	else printf("NO");
	return 0;
}
void main()
{
	char a[300],b[300];
	int c[52]={0},d[52]={0},i,j;
	scanf("%s %s",a,b);
	for(i=0;i<26;i++)
	{
		for(j=0;j<strlen(a);j++)
			if(a[j]=='A'+i)
				c[i]++;
		for(j=0;j<strlen(b);j++)
			if(b[j]=='A'+i)
				d[i]++;
	}
	for(;i<52;i++)
	{
		for(j=0;j<strlen(a);j++)
			if(a[j]=='a'+i-26)
				c[i]++;
		for(j=0;j<strlen(b);j++)
			if(b[j]=='a'+i-26)
				d[i]++;
	}
	for(i=0;i<52;i++)
		if(c[i]!=d[i])
		{
			printf("NO");
			break;
		}
	if(i==52) printf("YES");
}
void main()
{   int m=0,i,l,n=0;
	char a[20],b[20],*p1,*p2;
    scanf("%s",&a);
	scanf("%s",&b);
	p1=a;p2=b;
	int x,y;
	x=strlen(a);
	y=strlen(b);
	if (x!=y) 
		printf("NO\n");
	else
	{
		for(i=0;i<x;i++,p1++)
		{
			for(l=0;l<x;l++,p2++)
			{
			    if ((*p1)==(*p2)) n=1;
			}
		    if (n==0) m=0;
		    else m=1;
		    p2=b;
		}
	
	if (m==0) printf("NO\n");
	else printf("YES\n");
	}
}
void main()
{   void sort(char a[],int n);
	char a[100],b[100];
	int i,j,k,m,n;
      scanf("%s %s",a,b);
     m=strlen(a);n=strlen(b);	
	sort(a,m);
	sort(b,n);
	if(strcmp(a,b)==0) printf("YES");
	else printf("NO");
}
void sort(char a[],int n)
{
	int i,j,k;char t;
	for(i=0;i<n-1;i++)
	{
		k=i;
		for(j=i+1;j<n;j++)
			if(a[j]<a[k]) k=j;
			if(k!=i)
			{
				t=a[i];
				a[i]=a[k];
				a[k]=t;
			}
		}
}
void main()
{
	char a[100],b[100];
	int i,l1,l2,j;
	int m=0;
	scanf("%s%s",a,b);
	l1=strlen(a);
	l2=strlen(b);
	if(l1!=l2)
		printf("NO");
	else
	{
		for(i=0;i<l1;i++)
			for(j=0;j<l1;j++)
			{
				if(a[i]==b[j])
				{
					b[j]='\0';
					m=1;
					break;
				}
				else
					m=0;
			}
		if(m)
			printf("YES");
		else
			printf("NO");
	}
	
}
void main()
{
	char fst[100],lst[100],tmp;
	int n,i,len1,len2;
	scanf("%s",fst);
	scanf("%s",lst);
	len1=strlen(fst);
	len2=strlen(lst);
	if(len1!=len2)
		printf("NO\n");
	else
	{
		for(i=1;i<len1;i++)
		{
			for(n=0;n<(len1-i);n++)
			{
				if(fst[n]>=fst[n+1])
				{
					tmp=fst[n];
					fst[n]=fst[n+1];
					fst[n+1]=tmp;
				}
			}
		}
		for(i=1;i<len2;i++)
		{
			for(n=0;n<(len2-i);n++)
			{
				if(lst[n]>=lst[n+1])
				{
					tmp=lst[n];
					lst[n]=lst[n+1];
					lst[n+1]=tmp;
				}
			}
		}
		if(strcmp(fst,lst)==0)
			printf("YES\n");
		else
			printf("NO\n");
	}
}
/*
 * xiaoceyan4.3.cpp
 * ??????
 *  Created on: 2010-12-31
 *      Author: william
 */
void transfor(char a[], int ai)
{
	for(int i=0; i<ai ;i++)
		for(int j=0; j<ai-i-1; j++)
		{
			if(a[j]>a[j+1])
			{
				char temp=a[j];
				a[j]=a[j+1];
				a[j+1]=temp;
			}
		}
}
int main()
{
	char a[1000], b[1000];
	int ai, bi, i;
	cin>>a>>b;
	ai=strlen(a);
	bi=strlen(b);
	if(ai!=bi) cout<<"NO";
	else
	{
		transfor(a,ai);
		transfor(b,bi);
		for(i=0; i<ai; i++)
		{
			if(a[i]!=b[i]) break;
		}
		if(i==ai) cout<<"YES";
		else cout<<"NO";
	}
	return 0;
}
int main()
{ char a[100],b[100];
int n,m,i,j,sum=0;
scanf("%s %s",a,b);
n=(int)strlen(a);
m=(int)strlen(b);
if(n==m)
{ 
	for(i=0;i<n;i++)
{
	for(j=0;j<m;j++)
	{
		if(a[i]==b[j])
		{
			b[j]=0;
		    break;
		}

			
	}
	
}
}
for(j=0;j<m;j++)
{
	if(b[j]!=0)
	{  
		sum=sum+1;
	}
	else
	{
		continue;
	}
}
if(sum==0)
printf("YES");
if(sum!=0)
printf("NO");
       

	return 0;
}
void arn(char a[],int n);
int max(int a,int b);
void main()
{
	char a[50]={0},b[50]={0};
	int i,l1,l2;
	scanf("%s %s",a,b);
	l1=strlen(a);l2=strlen(b);
	if(l1!=l2) printf("NO\n");
	else 
	{
		arn(a,l1);arn(b,l1);
		for(i=0;i<l1;i++)
			if(a[i]!=b[i])
			{
				printf("NO\n");break;
			}
	}
	if(i==l1) printf("YES\n");
}


	


void arn(char a[],int n)
{
	int j,k;
	char t;
	for(j=0;j<n-1;j++)
	{
		for(k=j+1;k<n;k++)
			if(a[j]<a[k])
			{
				t=a[j];a[j]=a[k];a[k]=t;
			}
	}
}
void main()
{
	char a[100]={""},b[100]={""};
	int t1=0,t2=0,i,j,time;
	scanf("%s%s",a,b);

	t1=strlen(a);
	t2=strlen(b);

	if(t1!=t2)
		printf("NO");
	time=0;
	if(t1==t2)
	{
		for(i=0;i<t1;i++)
		{
			for(j=0;j<t1;j++)
			{
				if(a[i]==b[j])
				{
					b[j]='0';
					time++;
					break;
				}
			}
		}
		if(time==t1)
			printf("YES");
		else
			printf("NO");
	}

}
int than(char a[],char b[])
{
	int x=1,len,i,m,n,j;
	len=strlen(a);
	for(i=0;i<=len-1;i++)
	{
		m=0;
		n=0;
		for(j=0;j<=len-1;j++)
		{
			if(a[j]==a[i])
				m=m+1;
			if(b[j]==a[i])
				n=n+1;
		}
		if(m!=n)
			x=0;
	}
	return x;
}
void main()
{
	char a[100],b[100];
	int x,y,k;
	scanf("%s%s",a,b);
	x=strlen(a);
	y=strlen(b);
	if(x!=y)
		printf("NO\n");
	else
	{
		k=than(a,b);
		if(k)
			printf("YES\n");
		else
			printf("NO\n");
	}
}
change(char s[1000])
{
	int i,j,n=strlen(s);
	for(i=2;i<=n;i++)
		for(j=0;j<=n-i;j++)
			if(s[j]>s[j+1])
			{
				char c;
				c=s[j];
				s[j]=s[j+1];
				s[j+1]=c;
			}
}
void main()
{
	char s1[1000],s2[1000];
	scanf("%s%s",s1,s2);
	change(s1);
	change(s2);
	if(strcmp(s1,s2)==0)
		printf("YES");
	else
		printf("NO");
}
void main()
{
	char s1[300],s2[300];
	scanf("%s %s",s1,s2);
	int a[128],b[128],i,n,m,k=1;
	for(i=0;i<128;i++)
	{
		a[i]=0;
		b[i]=0;
	}
	n=strlen(s1);
	m=strlen(s2);
	if(m==n)
	{
		for(i=0;i<n;i++)
		{
			a[s1[i]]++;b[s2[i]]++;
		}
		for(i=0;i<128;i++)
		{
			if(a[i]!=b[i])
			{printf("NO");k=0;break;}
		}
		if(k!=0) printf("YES");
	}
	else printf("NO");
}
void main()
{
	char s1[100],s2[100],temp;
	int i,j,n;
	scanf("%s%s",s1,s2);
	n=strlen(s1)-1;
	for(i=n-1;i>=0;i--)
	{
		for(j=0;j<=i;j++)
		{
			if(s1[j]>s1[j+1]){temp=s1[j+1];s1[j+1]=s1[j];s1[j]=temp;}
//			printf("%c",s1[j]);
		}
	}
//	printf("%s",s2);
	for(i=n-1;i>=0;i--)
	{
		for(j=0;j<=i;j++)
		{
			if(s2[j]>s2[j+1]){temp=s2[j+1];s2[j+1]=s2[j];s2[j]=temp;}
		}
	}
//	printf("%c %s\n",s1[0],s2);
	if(strcmp(s1,s2)==0)printf("YES");
	else printf("NO");


}
int main()
{
	char str1[101], str2[101];
	int i,j,len1,len2;
	cin>>str1>>str2;
	len1=strlen(str1);
	len2=strlen(str2);
	if(len1!=len2)
	{
		cout<<"NO";
		return 0;
	}
	for(i=0;i<len1;i++)
	{
		for(j=0;j<len2;j++)
		{
			if(str1[i]==str2[j])
			{
				str2[j]=0;
				break;
			}
		}
		if(j==len2)
		{
			cout<<"NO";
			return 0;
		}
	}
	cout<<"YES";
	return 0;
}
int main(int argc, char* argv[])
{
	char a[100],b[100];
	int i,j,m,n;
	memset(a,0,sizeof(a));
	memset(b,0,sizeof(b));
	scanf("%s%s",a,b);
	m=strlen(a);
	n=strlen(b);
	
	for(i=0;i<m;i++)
		for(j=m-1;j>i;j--)
		{
			if(a[j-1]>a[j])
			{
				char e;
				e=a[j-1];
				a[j-1]=a[j];
				a[j]=e;
			}
		}
	for(i=0;i<n;i++)
			for(j=n-1;j>i;j--)
			{
				if(b[j-1]>b[j])
				{
					char f;
					f=b[j-1];
					b[j-1]=b[j];
					b[j]=f;
				}
			}
			if(strcmp(a,b)==0)
				printf("YES\n");
			else
				printf("NO\n");
	return 0;
}
void main()
{
int i,j,m,n,k;
m=0;
char temp;
char b,c,t;
char str1[100];
char str2[200];
char str[100];
gets(str);
n=strlen(str);

if(n%2!=0)
{for (i=0;i<(n-1)/2;i++)
  str1[i]=str[i];

for (i=(n+1)/2;i<n;i++)
  str2[i-(n+1)/2]=str[i];

for (j=0;j<(n-3)/2;j++)
   for (i=0;i<(n-3)/2-j;i++)
	   if(str1[i]>str1[i+1])
	   {
		   temp=str1[i];
		   str1[i]=str1[i+1];
		   str1[i+1]=temp;
	   
	   }

for (j=0;j<(n-3)/2;j++)
   for (i=0;i<(n-3)/2-j;i++)
	   if(str2[i]>str2[i+1])
	   {
		  temp=str2[i];
		   str2[i]=str2[i+1];
		   str2[i+1]=temp;
	   
	   }

for (i=0;i<(n-1)/2;i++)
   if( str1[i]!=str2[i])
   {m=1;
   break;}
if(m==0)
  printf("YES");
else 
printf("NO");
}
else printf("NO");
}
int main()
{
char a[500]={0},b[500]={0};
int c[500]={0},sum=0;
scanf("%s %s",a,b);
int i,j;
if(strlen(a)!=strlen(b))
{printf("NO");return 0;}
else
{
for(i=0;i<strlen(a);i++)
for(j=0;j<strlen(b);j++)
if((a[i]==b[j])&&(a[i]!='0')&&(c[j]==0))
{c[j]=1;break;}
for(i=0;i<strlen(b);i++)
sum=sum+c[i];
if(sum==strlen(b))
printf("YES");
else
printf("NO");
}
}
int main()
{
	char a[100],b[100];
	int i,j,l1,l2,ia[128]={0},ib[128]={0};
	scanf("%s%s",a,b);
	l1=strlen(a);
	l2=strlen(b);
	if(l1!=l2)printf("NO");
	else
	{
		for(j=0;j<l1;j++)
		    for(i=1;i<=127;i++)
				if(a[j]==i)
				{
					ia[i]++;
					break;
				}
		for(j=0;j<l1;j++)
		    for(i=1;i<=127;i++)
				if(b[j]==i)
				{
					ib[i]++;
					break;
				}
		for(i=1;i<128;i++)
			if(ia[i]!=ib[i])break;
		if(i==128)printf("YES");
		else printf("NO");
	}
	return 0;
}
int main(){
	char zfc1[100];
	char zfc2[100];
	int sz1[100];
	int sz2[100];
	int m1,m2,i,t,a;
		a=0;
	scanf("%s %s",&zfc1,&zfc2);
	m1=strlen(zfc1);
	m2=strlen(zfc2);
	for(i=0;i<52;i++){
		sz1[i]=0;
		sz2[i]=0;
	}
	for(i=0;i<m1;i++){
			if((zfc1[i]>='A')&&(zfc1[i]<='Z')){t=zfc1[i]-65;
		sz1[t]++;}
			else{t=zfc1[i]-71;
		sz1[t]++;}
	}
    for(i=0;i<m2;i++){
		if((zfc2[i]>='A')&&(zfc2[i]<='Z')){t=zfc2[i]-65;
		sz2[t]++;}
		else{t=zfc2[i]-71;
		sz2[t]++;}
	}
	for(i=0;i<52;i++){
		if(sz1[i]==sz2[i]){
			a=a+1;
		}
	}
	if(a==52){printf("YES");}
	else{printf("NO");}
	return 0;
}
int main()
{
	char word1[100]={'\0'},word2[100]={'\0'};
	int num1[128]={0},num2[128]={0};
	int i,j,k1,k2;
	scanf("%s %s",word1,word2);
	k1=strlen(word1);
	k2=strlen(word2);
	if(k1!=k2) printf("NO");
	else
	{
		for(i=0;i<=k1-1;i++)
		{num1[word1[i]]=num1[word1[i]]+1;}
		for(i=0;i<=k2-1;i++)
		{num2[word2[i]]=num2[word2[i]]+1;}
		j=0;
		for(i=0;i<=127;i++)
		{if(num1[i]==num2[i]) j=j+1;}
		if(j==128) printf("YES");
		else printf("NO");
	}
	return 0;
}
int main()
{
	char s[100],a[100];
	int flag[100]={0};
	int i=0,j=0,flag1=0;
	cin>>s;
	cin.get();
	cin>>a;
	int n=strlen(s),m=strlen(a);
	if(n!=m) {cout<<"NO"<<endl;return 0;}
	else
	{
		for(i=0;i<n;i++)
		{
            int flag2=0;			
			for(j=0;j<n;j++)
			{
				if(flag[j]!=0) continue;
				else if(s[i]==a[j]) {flag[j]=1,flag2=1;break;}
			}
			if(flag2==0) flag1=1;
		}
		if(flag1==1) {cout<<"NO"<<endl;return 0;}
		else  cout<<"YES"<<endl;
	}
	return 0;
}
void rank(char *i);

void rank(char *i)
{
	for(;*i!='\0';i++)
	{
		int n,k=0;
		char t;
		for(n=1;*(i+n)!='\0';n++)
		{
			if(*(i+k)>*(i+n))k=n;
		}
		if(k!=0)
		{
			t=*i;*i=*(i+k);*(i+k)=t;
		}
	}
}

void main()
{
	char a[100],b[100],*i,*j;
	int flag=0;
	scanf("%s%s",a,b);
	i=&a[0];j=&b[0];
	rank(i);rank(j);
	for(i=&a[0],j=&b[0];*i!='\0';i++,j++)
	{
		if(*i!=*j)
		{
			printf("NO");
			flag=1;
			break;
		}
	}
	if(flag==0)printf("YES");
}
int main()
{
	char a[50],b[50],c;
	scanf("%s %s",a,b);
	int n,i,j,m;
	n=strlen(a);
	m=strlen(b);
	if(n==m)
	{
		for(i=0;i<n-1;i++)
		{
			for(j=0;j<n-1-i;j++)
			{
				if(a[j]>a[j+1])
				{
					c=a[j];
					a[j]=a[j+1];
					a[j+1]=c;
				}
			}
		}
		for(i=0;i<n-1;i++)
		{
			for(j=0;j<n-1-i;j++)
			{
				if(b[j]>b[j+1])
				{
					c=b[j];
					b[j]=b[j+1];
					b[j+1]=c;
				}
			}
		}
		for(i=0;i<n;i++)
		{
			if(a[i]!=b[i])
			{
				break;
			}
		}
		if(i==n)
		{
			printf("YES");
		}
		else
		{
			printf("NO");
		}
	}
	else
	{
		printf("NO");
	}
	return 0;
}
int main()
{
	char a[100],b[100];
	int d[255]={0},c[255]={0},i,lena,lenb;
	scanf("%s %s",a,b);
	lena=strlen(a);
	lenb=strlen(b);
	for (i=0;i<lena;i++)
		c[a[i]]++;
	for (i=0;i<lenb;i++)
		d[b[i]]++;
	for (i=65;i<=122;i++)
		if (d[i]!=c[i])
		{
			printf("NO");
			return 0;
		}
	printf("YES");
	return 0;
}
int main()
{
	char a[100],b[100],A[128]={0},B[128]={0};
	int i,k,n=0;
	scanf("%s %s",a,b);
	for(i=0;i<strlen(a);i++)
	{
		k=a[i];
		A[k]++;
	}
	for(i=0;i<strlen(b);i++)
	{
		k=b[i];
		B[k]++;
	}
	for(i=0;i<128;i++)
	{
		if(A[i]==B[i]) 
		{
			n++;
			continue;
		}
		else 
		{
			printf("NO\n");
			break;
		}
	}
	if(n==128) printf("YES\n");
	return 0;
}
int length;
int tj(char str[],char x)
{	int i,count=0;
	for(i=0;i<length;i++)
		if(x==str[i]) count++;
	return(count);
}
void main()
{	int i,p=1;
    char a[100],b[100];
	scanf("%s %s",a,b);
	if(strlen(a)!=strlen(b)) p=0;
	else
	{length=strlen(a);
	for(i=0;i<length;i++)
		if(tj(a,a[i])!=tj(b,a[i]))
		{p=0;break;
		}
	}
	if(p==1) printf("YES\n");
	else printf("NO\n");
}
main()
{   char s[100],a[100]={'\0'},b[100]={'\0'},c,d;
    int len1,len2,i,j,k,x;
    gets(s);
    for(i=0;s[i]!=' ';i++)
    a[i]=s[i];
    for(x=0,k=i+1;s[k]!='\0';k++)
    { b[x]=s[k];x++;}
    len1=strlen(a);
    len2=strlen(b);
    for(i=0;i<len1;i++)
    for(j=0;j<len1-i-1;j++)
    if(a[j]>a[j+1])
    {  c=a[j];a[j]=a[j+1];a[j+1]=c;
    }
    for(i=0;i<len2;i++)
    for(j=0;j<len2-i-1;j++)
    if(b[j]>b[j+1])
    {  d=b[j];b[j]=b[j+1];b[j+1]=d;
    }
    
    if(len1!=len2)
    printf("NO");
    else { if(strcmp(a,b)==0)
    printf("YES");
    else printf("NO");
}
}
int main()
{
	int i,j,la,lb;
	char a[100],b[100];
	scanf("%s%s",a,b);
	la=strlen(a);
	lb=strlen(b);
	if(la!=lb)
	{
		printf("NO");
		return 0;
	}
	for(i=0;i<la;i++)
	{
		if(strchr(b,a[i])==0)
		{
			printf("NO");
			return 0;
		}
		else
		{
			for(j=0;j<lb;j++)
			{
				if(b[j]==a[i])
				{
					b[j]=' ';
					break;
				}
			}
		}


	}
	
	printf("YES");
	return 0;
}