semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main()
{
	char a[100]={0},b[100]={0};//??????
	cin.getline(a,100,' ');//??a
	cin.getline(b,100);//??b
	int c[53]={0},l1,l2;//????c???????????
	l1=strlen(a);l2=strlen(b);
	for(int i=0;i<l1;i++)
	{
		if(a[i]>=97&&a[i]<=122)
			c[a[i]-96]++;
		if(a[i]>=65&&a[i]<=90)
			c[a[i]-38]++;
	}//?a????????c??????
	for(int i=0;i<l2;i++)
	{
		if(b[i]>=97&&b[i]<=122)
			c[b[i]-96]--;
		if(b[i]>=65&&b[i]<=90)
			c[b[i]-38]--;
	}//?b????????c??????
	int s=0;
	for(int i=0;i<=52;i++)
	{
		if(c[i]==0)s=0;
		else {s=1;break;}
	}
	if(s==0)cout<<"YES"<<endl;//??c??0???YES
	else cout<<"NO"<<endl;//?????NO
	return 0;
}
int main()
{
    int i,k,e;
    char a[100],b[100];
    scanf("%s",a);
    scanf("%s",b); 
    for(i=1;i<=strlen(a);i++)
    {
                            for(k=0;k<strlen(a)-i;k++)
                            {
                                                      if(a[k+1]>a[k])
                                                      {
                                                                             e=a[k+1];
                                                                             a[k+1]=a[k];
                                                                             a[k]=e;
                                                      }
                            }
    }
        for(i=1;i<=strlen(b);i++)
    {
                            for(k=0;k<strlen(b)-i;k++)
                            {
                                                      if(b[k+1]-b[k]>0)
                                                      {
                                                                             e=b[k+1];
                                                                             b[k+1]=b[k];
                                                                             b[k]=e;
                                                      }
                            }
    }
    if(strcmp(a,b)==0)
    printf("YES");
    else
    printf("NO");
    return 0;
}
int main()
{
	char ce[27]= "abcdefghijklmnopqrstuvwxyz";
	char s1[max], s2[max];
	cin >> s1 >> s2;
	int ce1[26] = { 0 };
	for (int i = 0; i < strlen(s1);i++)
	for (int j = 0; j < 26;j++)
	if (s1[i] == ce[j]){
		ce1[j]++; break;
	}
	for (int i = 0; i < strlen(s2);i++)
	for (int j = 0; j < 26;j++)
	if (s2[i] == ce[j]){
		ce1[j]--; break;
	}
	int i = 0;
	for (i = 0; i < 26;i++)
	if (ce1[i] != 0)break;
	if (i == 26)cout << "YES";
	else cout << "NO";

}
int p(int i);
char a[100],b[100];
int l;
int main(int argc,char *argv[])
{
    int i,flag=1;    
    scanf("%s%s",a,b);
    l=strlen(b);
    for(i=0;i<strlen(a);i++)if(p(i)==0){flag=0;break;}
    for(i=0;i<l;i++)if(b[i]!=0){flag=0;break;}
    if(flag==1)printf("YES\n");
    else printf("NO\n");
    return 0;
}
int p(int i)
{
     int j,flag1=0;
     for(j=0;j<l;j++)if(a[i]==b[j]){flag1=1;b[j]=0;break;}
     if(flag1==0){return 0;}
     else return 1;
}
void main()
{
char st1[100],st2[100];
int i,n,m;
int n1[128],n2[128];

for (i=0;i<100;i++)
{st1[i]=0;
st2[i]=0;}
for (i=0;i<128;i++)
{n1[i]=0;
n2[i]=0;}

scanf("%s %s",st1,st2);

for (i=0;i<100;i++)
{n=st1[i];
m=st2[i];

n1[n]++;n2[m]++;
}
n=0;
for (i=0;i<128;i++)
{if (n1[i]==n2[i])
	n=n+1;
}
if (n==128)
printf("YES\n");
else
printf("NO\n");


}
int main()
{
	char s1[100]={'\0'},s2[100]={'\0'},c;
	scanf("%s %s",s1,s2);
	int i,j,l1=strlen(s1),l2=strlen(s2);
	if(l1!=l2)
		printf("NO");
	else
	{
		for(i=1;i<=l1-1;i++)
		{
			for(j=0;j<=l1-i-1;j++)
			{
				if(s1[j]>s1[j+1])
				{
					c=s1[j+1];
					s1[j+1]=s1[j];
					s1[j]=c;
				}
			}
		}
		for(i=1;i<=l1-1;i++)
		{
			for(j=0;j<=l1-i-1;j++)
			{
				if(s2[j]>s2[j+1])
				{
					c=s2[j+1];
					s2[j+1]=s2[j];
					s2[j]=c;
				}
			}
		}
		if(strcmp(s1,s2)==0)
			printf("YES");
		else
			printf("NO");
	}
}
int main() {
	char a[1000], b[1000];
	int c[130] = { 0 },t=0;
	cin >> a >> b;
	if (strlen(a) != strlen(b))//?????
		cout << "NO";
	else {//?????
		for (int i = 0; i < strlen(a); i++) {//????????
			c[b[i]]--;
			c[a[i]]++;
		}
        for (int i=0;i<130;i++){
        	if (c[i]!=0){
        		t=1;
        	   cout<<"NO";
        	   break;
        	}
        }
        if (t==0)
        	cout<<"YES";
	}

	return 0;
}
void main()
{
	char t,a[100],b[100];
	int m,n,i,j;
	scanf("%s",a);scanf("%s",b);
    m=strlen(a);n=strlen(b);
	for(i=0;i<m;i++)
	{
		for(j=i;j<n;j++)
			if(a[i]==b[j]){t=b[j];b[j]=b[i];b[i]=t;}
	}
	if(strcmp(a,b)==0)printf("YES");
	else printf("NO");
}
void del(char s[],char a)
{
	int j=0;
	while(s[j]!='\0')
	{
		if(s[j]==a)
		{
			s[j]=',';
			break;
		}
		else j++;
	}
}
void main()
{
	char s1[20],s2[20];
	int i,n,m;
	scanf("%s %s",s1,s2);
	n=strlen(s2);
	m=strlen(s1);
	if(n!=m)
		printf("NO");
	if(n==m)
	{
		for(i=0;i<n;i++)
		del(s1,s2[i]);
		for(i=0;i<n;i++)
		if(s1[i]!=',')
		{
				printf("NO");
				break;
		}
		if(i==n)printf("YES");
	}
}
void main()
{
	char a[100],b[100];
	int i,j,k,m,n,sig=0;
	scanf("%s",a);
	scanf("%s",b);
	n=strlen(a);
	if(strlen(a)==strlen(b))
	{
		for(i=0;i<n;i++)
		{
			for(j=0;j<n;j++)
			{
				if(b[j]==a[i])
				{
					b[j]=0;
					break;
				}
				
			}
			if(j==n)
				{printf("NO");
				break;}
		}
		if(i==n)
			printf("YES");
		 
	}
	else
		printf("NO");
}
void main()
{
	char c1[100],c2[100];
	int i,j,a,b,k=0;
	scanf("%s %s",c1,c2);
	a=strlen(c1);
	b=strlen(c2);
	if(a!=b) printf("NO\n");
	else
	{
		for(i=0;i<a;i++)
		{
			for(j=0;j<a;j++)
			{
				if(c1[i]==c2[j])
					k++;
			}
		}
		for(i=0;i<a;i++)
		{
			for(j=i+1;j<a;j++)
			{
				if(c1[i]==c1[j])
					k=k-2;
			}
		}
		if(k==a) printf("YES\n");
		else printf("NO\n");
	}
}
void count(char s[],int l,int ns[])
{
	int i;
	for(i=0;i<l;i++)
	{
		ns[s[i]-'A']++;
	}
}
void compare(int ms[],int ns[])
{
	int i;
	for(i=0;i<60;i++)
	{
		if(ms[i]!=ns[i])
		{
			printf("NO\n");
			return;
		}

	}
	printf("YES\n");
}
void main()
{
	int ns1[60]={0},ns2[60]={0},l1,l2,i;
	char s1[100],s2[100];
	scanf("%s %s",s1,s2);
	l1=strlen(s1);
	l2=strlen(s2);
	count(s1,l1,ns1);
	count(s2,l2,ns2);
	compare(ns1,ns2);
}
char a[200],b[200];
int la,lb;
int appear(char c)
{
    int i;
    for(i=0;i<la;i++)if(c==b[i]){b[i]=0;return(1);}
    return(0);
}
int main()
{
      int i,j,k;

      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(appear(a[i])==0){printf("NO");return(0);}
      printf("YES");
      return(0);
}
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()
{
	int m,n;
	char a[20],b[20];
	scanf("%s %s",a,b);
	m=strlen(a);
	n=strlen(b);
	 sort(a,m);
	 sort(b,n);
	 if(strcmp(a,b)==0) printf("YES\n");
	 else printf("NO\n");
}
void main()
{
	char str1[100],str2[100],a1[100],a2[100];
	int num1[100],num2[100];
	int i,j,n1,n2;
	scanf("%s %s",&str1,&str2);
	n1=strlen(str1);
	n2=strlen(str2);
	for(i=0;i<n1;i++)
	{
		a1[i]=str1[i];
	}
	for(i=0;i<n2;i++)
	{
		a2[i]=str2[i];
	}
	for(i=0;i<100;i++)
	{
		num1[i]=0;
		num2[i]=0;
	}
	if(n1!=n2)
		printf("NO");
	else
		if(n1==n2)
		{
        	for(i=0;i<n1;i++)
			{
				for(j=0;j<n1;j++)
					if(a1[i]==a1[j])
						num1[i]=num1[i]+1;
				for(j=0;j<n1;j++)
					if(a1[i]==a2[j])
						num2[i]=num2[i]+1;
			}
			for(i=0;i<n1;i++)
				if(num1[i]!=num2[i])
					break;
			if(i>=n1)
				printf("YES");
			else
				if(i<n1)
				printf("NO");
		}
}
void main()
{
	int i,j,lena,lenb,t;
	char a[100]={0},b[100]={0};
	scanf("%s",a);
	scanf("%s",b);
	lena=strlen(a);
	lenb=strlen(b);
	if(lena==lenb)
	{
		for(i=0;i<lena;i++)
		{	
			t=0;
			for(j=0;j<lena;j++)
			{
				if(a[i]==b[j])
				{
					a[i]=0;
					b[j]=0;
					t=1;
					break;
				}
				if(t==1) break;
			}
			if(t==0) break;
		}
		if(t==0) printf("NO");
		else printf("YES");
	}
	else printf("NO");
}
void order(char ch[],int n)
{
	int temp;
	int i,j;
	for(i=0;i<n;i++)
	{
		for(j=0;j<n-i;j++)
		{
			if(ch[j]>ch[j+1])
			{
				temp=ch[j];
				ch[j]=ch[j+1];
				ch[j+1]=temp;
			}
		}
	}
}
void main(void)
{
	char ch1[1000],ch2[1000],c;
	int i,j,k,l=1;
	for(k=0;k<1000;k++)
	{
		ch1[k]=' ';
		ch2[k]=' ';
	}
	for(i=0;i<1000&&(c=getchar())!=' ';i++)
		ch1[i]=c;
	for(j=0;j<1000&&(c=getchar())!='\n';j++)
		ch2[j]=c;
	order(ch1,i+1);
	order(ch2,j+1);
	for(k=0;k<1000&&l==1;k++)
		if(ch1[k]!=ch2[k])
		{
			l=0;
			break;
		}
	if(l==1)printf("YES\n");
	if(l==0)printf("NO\n");
}
/*?? 
????????????????????????????????????????
 
???? 
???????????????????????????
 
???? 
???????????????????YES? 
????NO???YES?NO???????
 
???? 
dare read
 
???? 
YES
*/ 


int main()
{
	int count[100];
	int countie[100];
	int i=0;
	for(i=0;i<100;i++)
	{
		count[i]=0;
		countie[i]=0;
	}
	int k=0;
	char a[50], b[50];
	scanf("%s %s", a,b);

	for(i=0;i<strlen(a);i++)
		count[a[i]-'A']++;

	for(i=0;i<strlen(b);i++)
		countie[b[i]-'A']++;

	for(i=0;i<100;i++)
		if (count[i]==countie[i])
			k++;
	if (k==100)
		printf("YES");
	else printf("NO");

	return 0;
}
int compare(char str1[],char str2[])
{
	if(strcmp(str1,str2)==0) return 1;
	else
	{
		int len1=strlen(str1),len2=strlen(str2),k;
		for(k=0;k<=len1-1;k++)
			if(str1[k]==str2[len2-1]) break;

		if(k==len1) return 0;
		else
		{
			int i;
			for(i=k;i<=len1-2;i++)
				str1[i]=str1[i+1];

			str1[len1-1]=0;
			str2[len2-1]=0;

			return compare(str1,str2);
		}
	}
}

void main(void)
{
	char str1[100],str2[100];
	scanf("%s %s",str1,str2);
	if(compare(str1,str2)) printf("YES\n");
	else printf("NO\n");
}
int main()
{
	char s1[80],s2[80],t;
	int l1,l2,i,j;
	scanf("%s %s",s1,s2);
	l1=strlen(s1);
	l2=strlen(s2);
	if(l1!=l2)
		printf("NO\n");
	else
	{
		for(i=0;i<=l1-2;i++)
		{
			for(j=i+1;j<=l1-1;j++)
			{
				if(s1[i]<s1[j])
				{
					t=s1[i];s1[i]=s1[j];s1[j]=t;
				}
				if(s2[i]<s2[j])
				{
					t=s2[i];s2[i]=s2[j];s2[j]=t;
				}
			}
		}
		if(strcmp(s1,s2)==0)
			printf("YES\n");
		else
			printf("NO\n");
	}
	return 0;
}
void main()
{
	char str1[100]={""},str2[100]={""};
	int i,j,len1,len2,flag=1;
	scanf("%s%s",str1,str2);
	len1=strlen(str1);
	len2=strlen(str2);
	if(len1!=len2)
		printf("NO\n");
	else
	{
		for(i=0;i<len1;i++)
		{
			for(j=0;j<len1;j++)
			{
				if(str1[i]==str2[j])
				{
					str2[j]=0;
					break;
				}
			}
			if(j>=len1)
			{
				flag=0;
				break;
			}
		}
		if(flag)
			printf("YES\n");
		else
			printf("NO\n");
	}
}
void bubble_sort(char s[],int l)
{
    int i,j;
    char t;
    for(i=0;i<l-1;i++)
        for(j=0;j<l-1-i;j++)
            if(s[j]>s[j+1])
            {
                t=s[j];
                s[j]=s[j+1];
                s[j+1]=t;
            }
}
int main()
{
    char s[502],a[502],b[502];
    int l,i;
    gets(s);
    l=strlen(s)/2;
    for(i=0;i<l;i++) {a[i]=s[i];b[i]=s[l+i+1];}
    a[l]='\0';
    b[l]='\0';
    bubble_sort(a,l);
    bubble_sort(b,l);
    if(strcmp(a,b)) printf("NO\n");
        else printf("YES\n");
}
int main (){
	char a[20],b[20];
	char *p,*q;
	int *u,*v;
	cin>>a>>b;
	if(strlen(a)!=strlen(b))
	{
		cout<<"NO"<<endl;
		return 0;
	}
	int le1[52],le2[52];
	p=a;
	q=b;
	u=le1;
	v=le2;

	for(int i=0;i<52;i++)
		*(u+i)=*(v+i)=0;
	int len1=strlen(a);

	for(int i=0;i<len1;i++){
	if(*(p+i)>='a')
		(*(u+(*(p+i)-'a')))++;
	else (*(u+(*(p+i)-'A'+26)))++;
}
for(int i=0;i<len1;i++){
	if(*(q+i)>='a')
		(*(v+(*(q+i)-'a')))++;
	else (*(v+(*(q+i)-'A'+26)))++;
}
int j;
for( j=0;j<52;j++)
	if(*(u+j)!=*(v+j)){
		cout<<"NO"<<endl;
		return 0;
	}
cout<<"YES"<<endl;
return 0;
}
int judge(char a[50],char b[50])
{
	int len,lena,lenb,i,j,na,nb,pp=1;
	char ma;
	lena=strlen(a);
//	printf("lena=%d",lena);
	lenb=strlen(b);
//	printf("lenb=%d",lenb);
	if(lena!=lenb) return 0;
	else
	{
		len=lena;
		for(i=0;i<len;i++)
			if(a[i]>=97&&a[i]<=122)
			{
				ma=a[i];
				na=1;
				nb=0;
				for(j=i+1;j<len;j++)
					if(a[j]==ma) 
					{
						na++;
						a[j]=0;
					}
				for(j=0;j<len;j++)
					if(b[j]==ma) nb++;
				if(na!=nb)
				{
					return 0;
					pp=0;
					break;
				}
			}
		if(pp==1)
			return 1;
	}
	return 1;
}

main()
{
	char inp[200],a[50],b[50];
	int len,i,j,ma=0;

	gets(inp);
	len=strlen(inp);

	for(i=0;i<50;i++)
	{
		a[i]=0;
		b[i]=0;
	}

	for(i=0,j=0;i<len;i++)
	{
		if(ma==0)
		{
			if(inp[i]!=32)
				a[i]=inp[i];
			else 
			{
				ma=1;
			
				continue;
			}
		}
		if(ma==1)
		{
			if(inp[i]!=32)
			{
				b[j]=inp[i];
				j++;
			}
		
		}
	}

	if(judge(a,b)==0) printf("NO\n");
	else printf("YES\n");


}
int main(){
	char str1[1000];
	cin>>str1;
	char str2[1000];
	cin>>str2;
	int len1=strlen(str1);
	int len2=strlen(str2);
	int i,j;
	for(i=0;i<len1-1;i++){
		for(j=0;j<len1-1-i;j++){
			if (str1[j]>str1[j+1]){
				char tmp=str1[j];
				str1[j]=str1[j+1];
				str1[j+1]=tmp;
			}
		}
	}


		for(i=0;i<len2-1;i++){
		for(j=0;j<len2-1-i;j++){
			if (str2[j]>str2[j+1]){
				char tmp=str2[j];
				str2[j]=str2[j+1];
				str2[j+1]=tmp;
			}
		}
	}
		//puts(str1);
		//puts(str2);
		if (strcmp(str1,str2)==0){
			cout<<"YES"<<endl;
		}
		else{
			cout<<"NO"<<endl;
		}
return 0;
}
void main()
{
	char a[100]={0},b[100]={0};
	int i,j,ya,yb,num=0,count=0;
	
    
		scanf("%s",a);
		scanf("%s",&b);
    ya=strlen(a);
	yb=strlen(b);

	if(ya==yb)
	{
	
	 for(i=0;i<ya;i++)
	 {
		 
		 for(j=0;j<yb;j++)
		 {
			 if(a[i]==b[j])
			 {
				 count=1;

			     break;
			 }
			 
		 }
		 num=num+count;
	 }
	 if(num==ya)
		 printf("YES");
		 else printf("NO");
	}
	else
		printf("NO");
}
int main()
{
   char a[100],b[100];
   cin>>a>>b;
   int sizea=strlen(a);
   int sizeb=strlen(b);
   if(sizea!=sizeb)
   cout<<"NO";
   else
   {
       int i,j;
       for(i=0;i<sizea;i++)
       for(j=i+1;j<sizea;j++)
       {
           char t;
           if(a[j]>a[i])
           {
              t=a[j];a[j]=a[i];a[i]=t;          
           }  
           if(b[j]>b[i])
           {
             t=b[j];b[j]=b[i];b[i]=t;           
           }                
       }
       for(i=0;i<sizea;i++)
       if(b[i]!=a[i])
       break;
       if(i==sizea)
       cout<<"YES";
       else if(i!=sizea)
       cout<<"NO";
   } 
   cin.get(); cin.get(); cin.get();
   return 0;
}
int main()
{
	char a[200],b[200];
	int len,num=0;
	int j,i;
	scanf("%s %s",a,b);
	if(strlen(a)!=strlen(b))
		printf("NO");
	else 
	{
		len=strlen(a);
		for(j=0;j<len;j++)
		{
			for(i=0;i<len;i++)
			{
				if(a[j]==b[i])
				{
					a[j]='0';
					b[i]='0';
				}
			}
		}
		for(i=0;i<len;i++)
		{
			if(a[i]=='0')
				num++;
		}
		if(num==len)
			printf("YES");
		else printf("NO");
	}
	return 0;
}
int main ()
{
	char a[100]={'\0'};
	char b[100]={'\0'};
	int i,j,m,n,h;
	scanf("%s%s",&a,&b);
	m=strlen(a);
	n=strlen(b);
	h=0;
	if(m!=n)
	{
		printf("NO");
	}else{
	for(i=0;i<m;i++)
	{
		for(j=0;j<m;j++)
		{
			if(a[i]==b[j])
			{
				h++;
				a[i]=0;
				b[j]=0;
				break;
			}
		}
	}
	if(h==m)
	{
		printf("YES");
	}else
	{
		printf("NO");
	}}
	return 0;

}
int main()
{char a[100],b[100],t;
scanf("%s%s",a,b);
int m,n,i,j;
m=strlen(a);
n=strlen(b);
if(m!=n)
printf("NO");
else
{for(i=0;i<m;i++)
{for(j=i;j<m;j++)
{if(a[i]==b[j])
{t=b[i];
b[i]=b[j];
b[j]=t;
break;}
}
if(a[i]!=b[i]&&j==m)
{printf("NO");
break;}
}
for(i=0;i<m;i++)
{if(a[i]!=b[i])
{printf("NO");break;}}
if(i==m)
printf("YES");
}
return 0;
}
int main(){
	char a[200],b[200];
	int i,j,c[200],k;
	for(i=0;i<200;i++)
		c[i]=1;
	scanf("%s",a);
	scanf("%s",b);
	if(strlen(a)!=strlen(b))
		printf("NO");
	else{
		for(i=0;i<strlen(a);i++)
			for(j=0;j<strlen(b);j++)
				if(a[i]==b[j]&&c[j]!=0){
					c[j]=0;
					break;
				}
		k=0;
		for(i=0;i<strlen(a);i++)
			if(c[i]==1)
				k=1;
		if(k==1)
			printf("NO");
		else
			printf("YES");
	}
	return 0;
}
/*
 * zfuchuanchongpai.cpp
 *
 *  Created on: 2011-12-28
 *      Author: Administrator
 */
int main()
{
	char a[100],b[100];
	cin>>a>>b;
	int number=0;
	int length1=strlen(a),length2=strlen(b);
	if(length1!=length2)
	{
		cout<<"NO"<<endl;
		return 0;
	}
	int i=0,j=0,temp1,temp2;
	for (i=0;i<length1-1;i++)
	{
		for(j=0;j<length1-i-1;j++)
		{
			if (a[j]>a[j+1])
			{
				temp1=a[j];
				a[j]= a[j+1];
				a[j+1] = temp1;
			}
		}
	}

	for (i=0;i<length1-1;i++)
	{
		for(j=0;j<length1-i-1;j++)
		{
			if (b[j]>b[j+1])
			{
				temp2=b[j];
				b[j]= b[j+1];
				b[j+1] = temp2;
			}
		}
	}
	for(i=0;i<length1;i++)
	{
		if(a[i]==b[i])
		{
			number++;
		}
	}
	if(number==length1)
		cout<<"YES"<<endl;
	else cout<<"NO"<<endl;
	return 0;
}
// ???.cpp : Defines the entry point for the console application.
//


int main(int argc, char* argv[])
{
	char a[1000],b[1000];
	scanf("%s %s",a,b);
	int lena=strlen(a);
	int lenb=strlen(b);
	if(lena!=lenb){
		printf("NO");
	}
	else{
		int i,j,k=0,num=0,count=0;
		int same=0,tong[1000];
		for(i=0;i<1000;i++){
			tong[i]=0;
		}
		for(i=0;i<lena;i++){
			for(j=i+1;j<lena;j++){
				if(a[i]==a[j]){
					tong[k]++;
					num++;
				}
			}
		}
		for(i=0;i<num;i++){
			same=same+tong[i]+1;
		}
		for(i=0;i<lena;i++){
			for(j=0;j<lenb;j++){
				if(a[i]==b[j]){
					count++;
				}
			}
		}
		if(count==lena+same){
			printf("YES");
		}
		else{
			printf("NO");
		}
	}
	return 0;
}
void main(){
	void sort(char ch1[500],char ch2[500]);
      char ch1[500],ch2[500];
	  scanf("%s%s",ch1,ch2);
	  int len1,len2;
	  len1=strlen(ch1);len2=strlen(ch2);
	  if(len1!=len2)printf("NO");
	  else sort(ch1,ch2);
}
void sort(char ch1[500],char ch2[500]){
	int k,i,j,q,b[500]={0};
	k=strlen(ch1);
	for(i=0,q=0;i<k;i++){
		for(j=0;j<k;j++){
			if(b[j]==0&&ch1[i]==ch2[j]){b[j]=1;q++;break;
			}
		}
	}
	if(q==k)printf("YES");
	else printf("NO");
}
void main()
{
	char a[1000],b[1000];
	int num1[300],num2[300];
	int len1,len2;
	int i;
	int num;
	scanf("%s%s",&a,&b);
	len1=strlen(a);
	len2=strlen(b);
	if(len1!=len2)
		printf("NO\n");
	else
	{
		for(i=0;i<300;i++)
		{
			num1[i]=0;
			num2[i]=0;
		}
		num=0;
		for(i=0;i<len1;i++)
		{
			num1[a[i]]++;
			num2[b[i]]++;
		}
		for(i=0;i<300;i++)
		{
			if(num1[i]!=num2[i])
			{
				printf("NO\n");
				break;
			}
			else
				num++;
		}
		if(num==300)
			printf("YES\n");
	}
}
char a[200],b[200];
int main()
{
	int len1,len2,c[200]={0},p=0,i,j;
	cin>>a;
	cin>>b;
	len1=strlen(a);
	len2=strlen(b);
	if(len1!=len2)
		cout<<"NO"<<endl;
	else
	{
		for(i=0;i<len2;i++)
		{
			for(j=0;j<len1;j++)
			{
				if(b[i]==a[j]&&c[j]==0)
				{
					c[j]=1;break;
				}
			}
		}
		for(i=0;i<len1;i++)
		{
			if(c[i]==0)
			{
				cout<<"NO"<<endl;p=1;
				break;
			}
		}
		if(p==0)
			cout<<"YES"<<endl;
	}
	return 0;
}
int max(char a,char b[][50],int l);
int main()
{int l,i;
    char a[50],b[2][50]={'\0'};
    scanf("%s%s",a,b[0]);
    l=strlen(a);
    if(l!=strlen(b[0]))
    printf("NO");
    else
    {
        for(i=0;i<=l-1;i++)
        if(max(a[i],b,l)==0)
        break;
        
        if(i==l)
        printf("YES");
        else
        printf("NO");
}
    return 0;
}

int max(char a,char b[][50],int l)
{int i;
     for(i=0;i<=l-1;i++)
     if(a==b[0][i]&&b[1][i]=='\0')
     {b[1][i]=1;
     return 1;
     break;}
     return 0;
     }
int main()
{
    int count[300] = {0};
    int c = 0, d = 1;
    while ( (c = getchar()) != '\n' && c != '\0' )
    {
        if ( c == ' ' )
        {
            d = -1;
            continue;
        }
        count[c] += d;
    }
    int i = 0;
    for ( i = 0; i < 300 && count[i] == 0; i++ )
        ;
    if ( i == 300 )
        printf("YES");
    else
        printf("NO");
    return 0;
}
int main()
{
	char a1[1000],a2[1000],b;
	int i,j,n1,n2,c=1;
	scanf("%s",a1);
	scanf("%s",a2);
	n1=strlen(a1);
	n2=strlen(a2);
	for(i=0;i<(n1-1);i++)
	{
		for(j=0;j<(n1-i-1);j++)
			if(a1[j]>a1[j+1])
			{
				b=a1[j+1];
				a1[j+1]=a1[j];
				a1[j]=b;
			}
			
	}
	for(i=0;i<(n2-1);i++)
	{
		for(j=0;j<(n2-i-1);j++)
			if(a2[j]>a2[j+1])
			{
				b=a2[j+1];
				a2[j+1]=a2[j];
				a2[j]=b;
			}
			
	}
	c=strcmp(a1,a2);
	if(c==0)
		printf("YES");
	else
		printf("NO");
return 0;
}
void sort(char c[],int n);
int main(int argc, char* argv[])
{

	int len1,len2;
	char a[200],b[200];
	scanf("%s%s",a,b);
	len1=strlen(a);
	len2=strlen(b);
	sort(a,len1);
	sort(b,len2);
	if(strcmp(a,b)==0) printf("YES");
	else printf("NO");
    return 0;
}
void sort(char c[],int n)
{
	int i,k;
	char temp;
	for (k=n-1;k>0;k--)
	{
		for (i=0;i<k;i++)
		{
			if (c[i]>c[i+1])
			{
				temp=c[i];
				c[i]=c[i+1];
				c[i+1]=temp;
			}
		}
	}
}
void in(int n, char a[], int c[])              //??????????
{
	for(int i = 0; i < n; i++)
		c[a[i]] ++; 
}
int main()
{
	char a[500], b[500];
    int c_a[300] = {0}, c_b[300] = {0};
	cin>>a>>b;                                   
	if(strlen(a) != strlen(b))                //???????????????
	{
		cout<<"NO"<<endl;
		return 0;
	}
	in(strlen(a), a, c_a);                   
	in(strlen(b), b, c_b);
	for(int i = 0; i < 300; i++)             //?????????????
	{
		if(c_a[i] != c_b[i])
		{
			cout<<"NO"<<endl;
			return 0;
		}
	}
	cout<<"YES"<<endl;
	return 0;
}
int main()
{
	int i,j,k,a,b,flag;
	char s1[100],s2[100],*p1,*p2;
	scanf("%s %s",s1,s2);
	a=strlen(s1);
	b=strlen(s2);
	if(a!=b)printf("NO");
	else{
p1=s1;	
	p2=s2;
	for(j=0;j<a;++j)
	for(i=0;i<a;++i)
	{
		if(*(p1+i)!=0&&*(p2+j)!=0)
			if(*(p1+i)==*(p2+j))
		{
			
			*(p2+j)=0;
			*(p1+i)=0;
		}
	
	}
	for(p1=s1;p1<a+s1;p1++)
	{
		if(*p1!=0)
		{
			flag=0;
			break;
		}
		else flag=1;
	}
	if(flag)printf("YES");
	else printf("NO");
}
}
int main()
{
	char a[1000]={0};
	char b[1000]={0};
	int c[1000]={0};
	cin>>a>>b;
	int p=strlen(a);
	int q=strlen(b);
	if(p!=q)
		cout<<"NO";
	else
	{
		for(int i=0;i<p;i++)
			c[i]=1;
		for(int i=0;i<p;i++)
		{
			for(int j=0;j<p;j++)
			{
				if((b[j]==a[i])&&(c[j]!=0))
				{
					c[j]=0;
					break;

				
				
				}
			
			
			
			}




		}
		int sum=0;
		for(int i=0;i<p;i++)
		{
			if(c[i]==1)
			{
				sum=1;
				cout<<"NO";
				break;
			
			
			
			}
		
		
		
		
		
		
		}
		if(sum==0)
			cout<<"YES";







	}







	return 0;






}
void main()
{
	int i,j,n,m;
	char a[100],b[100],c[100];
	
    scanf("%s%s",a,b);

	n=strlen(a);
     m=strlen(b);
      if(n!=m)
         printf("NO");
     else 
 {
	for(i=0;i<=n;i++)
	{
	
		for(j=0;j<=n;j++)
		{
			if(a[i]==b[j])
			   
				
			{c[i]=b[j];
			b[j]='\0';
                   
				 
				   break;}
				 
		}
	}
		
			
			if(strcmp(a,c)==0)
				printf("YES");
			else 
				printf("NO");
	 }
}
int main ()
{
	char s1[10000],s2[10000];
	scanf("%s %s",s1,s2);
	int i;
	int len1=strlen(s1);
	int len2=strlen(s2);
	if(len1!=len2)
	{
		printf("NO\n");
	}
	else
	{
		int i,j;
		for (i=0;i<len1;i++)
		{
            for(j=0;j<len1;j++)
			{
				if(s1[i]==s2[j])
				{
					s2[j]=' ';
					break;
				}
			}
		}
		j=0;
		for(i=0;i<len2;i++)
		{
			if(s2[i]!=' ')
				j++;
		}
		if(j==0)
			printf("YES\n");
		else printf("NO\n");
	}
}
int main()
{
   char a[100]="\0",b[100]="\0",*p,*q;
   int change(char *w);
   scanf("%s%s",a,b);
   if(strlen(a)!=strlen(b)){printf("NO");return 0;}
   change(a);
   change(b);
   for(p=a,q=b;*p!='\0';p++,q++)
   {
	   if(*p!=*q){printf("NO");return 0;}
   
   }
   printf("YES");
	  
	  return 1;
}
int judge(int *w,int i,int *p)
{


return 0;
}
int change(char *w)
{
 char *pi=w,*qi,s;
 for(;*(pi+1)!='\0';pi++)
	 for(qi=pi+1;*qi!='\0';qi++)
	 {
		 if (*qi>*pi)
		 {
			 s=*qi;
			 *qi=*pi;
			 *pi=s;
		 }
	 }
return 0;
}
int main()
{
    char str1[1000],str2[1000],c;
    int n1,n2;
    scanf("%s%s",str1,str2);
    n1=strlen(str1);
    n2=strlen(str2);
    for(int i=0;i<n1;i++)
        for(int j=0;j<n1-i-1;j++)
            if(str1[j]>str1[j+1]) {c=str1[j];str1[j]=str1[j+1];str1[j+1]=c;}
    for(int i=0;i<n2;i++)
        for(int j=0;j<n2-i-1;j++)
            if(str2[j]>str2[j+1]) {c=str2[j];str2[j]=str2[j+1];str2[j+1]=c;}
    if(strcmp(str1,str2)==0) printf("YES\n");
    else printf("NO\n");
}
int main()
{
	char a[128],b[128];
	int c[64],d[64];
	int i,sum,j;
	for(i=0;i<128;i++)
	{
		c[i]=0;
		d[i]=0;
	}
	char ch='A';
	scanf("%s",a);
    scanf("%s",b);
	if((int)strlen(a)==(int)strlen(b))
	{
		j=0;
		sum=0;
		for(j=0;j<128;j++)
		{
		    for(i=0;i<=62;i++)
			{
			    ch='A'+i;
			    if(a[j]==ch)
				{
			        c[i]=c[i]+1;
				}
		        if(b[j]==ch)
				{
			        d[i]=d[i]+1;
				}
			}
		}
		for(i=0;i<=62;i++)
		{
			if(c[i]!=d[i])
			{
				sum=sum+1;
			}
		}
		if(sum==0)
		{
			printf("YES\n");
		}
		else
		{
			printf("NO\n");
		}
	}
	else
	{
		printf("NO\n");
	}
    return 0;
}