semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main()
{
    char a[100],b[50],c[50];
    int m,n,x,y,z,sum=0;
    gets(a);
    x=strlen(a);
    for(m=0;m<x;m++)
    {if(a[m]==' ')
    {for(n=0;n<m;n++)
    b[n]=a[n];
    b[m]='\0';
    for(n=m+1;n<x;n++)
    c[n-m-1]=a[n];
    c[x-m-1]='\0';}}
    y=strlen(b);
    z=strlen(c);
    if(y!=z)
    {printf("NO\n");
    return 0;}
    else
    {for(m=0;m<y;m++)
     {for(n=0;n<=z;n++)
      if(c[n]==b[m])
       {c[n]='0';
        b[m]='0';
        break;}
        else if(n==z)
        {printf("NO\n");
        return 0;}}
      printf("YES\n");
     }
     }
int main(){
	char zfc1[1005],zfc2[1005];
	int i,j,k;
	scanf("%s",zfc1);
	scanf("%s",zfc2);
	for(i=0;i<strlen(zfc1);i++){
		for(j=0;j<strlen(zfc1);j++){
			if(zfc1[i]==zfc2[j]){
				for(k=i;k<strlen(zfc1);k++){
					zfc1[k]=zfc1[k+1];
				}
				for(k=j;k<strlen(zfc2);k++){
					zfc2[k]=zfc2[k+1];
				}
				j--;
				i--;
			}
		}
	}
	if(strlen(zfc1)==0&&strlen(zfc2)==0) printf("YES");
	else printf("NO");
	scanf("%s",zfc1);
	return 0;
}
void main()
{
    char a[100],b[100];
	int da[2][26]={0},xiao[2][26]={0};
	scanf("%s %s",a,b);
	int i,l1,l2;
	l1=strlen(a);
	l2=strlen(b);
	for(i=0;i<l1;i++)
	{
		if(a[i]>='a'&&a[i]<='z')
			xiao[0][a[i]-'a']++;
		else da[0][a[i]-'A']++;
	}
	for(i=0;i<l2;i++)
	{
		if(b[i]>='a'&&b[i]<='z')
			xiao[1][b[i]-'a']++;
		else da[1][b[i]-'A']++;
	}
	int flag=0;
	for(i=0;i<26;i++)
		if(da[0][i]!=da[1][i])
			flag=1;
	for(i=0;i<26;i++)
		if(xiao[0][i]!=xiao[1][i])
			flag=1;
	if(flag==0)
		printf("YES");
	else printf("NO");
}
void main()
{
char a[100],b[100],c[100];
int i,j,k,l,m,sum=0,v,q=0,d;
gets(a);
j=strlen(a);
for(v=0;a[v]!=' ';v++)
q++;
d=2*q+1;
if(j%2==1&&d==j)
{k=(j-1)/2;
for(i=0;i<k;i++)
b[i]=a[i];
for(i=k+1;i<j;i++)
c[i-k-1]=a[i];
for(l=0;l<k;l++)
for(m=0;m<k;m++)
if(b[l]==c[m]) {b[l]='0'; c[m]='0';}
for(l=0;l<k;l++)
if(b[l]=='0'&&c[l]=='0') l=l;
else break;
if(l==k) printf("YES\n");
else printf("NO\n");
}
else
printf("NO\n");
}
void main()
{
	char a[100],b[100];
	int i,j,l1,l2,tag1[100]={0},tag2[100]={0},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(tag2[j]!=0)
					continue;
				if(a[i]==b[j])
				{
					tag1[i]=1;
					tag2[j]=1;
					break;
				}
			}
				for(i=0;i<l1;i++)
					if(tag1[i]==0)
					{
						m=1;
						break;
					}
					if(m==0)
						printf("YES");
					else
						printf("NO");
	}
}
int main(){
	char s1[100],s2[100];
	cin>> s1>> s2;
	int l1 = strlen(s1), l2 = strlen(s2), t=0;
	if(l1!= l2) cout<< "NO" <<endl;
	else {
		for (int i=0; i<l1; i++){
			for(int j = 0; j<l2; j++){
				if(s1[i] == s2[j]){
					s2[j] = ' ';
					t++;
					break;
				}
			}
		}
		if(t == l1) cout<< "YES" << endl;
		else cout<< "NO" << endl;
	}
	return 0;
}
void main()
{
	void sort(char x[], int n);
	int m,n,r;
	char a[50],b[50];
	scanf("%s%s",a,b);
	m=strlen(a);
	n=strlen(b);
	sort(a,m);
	sort(b,n); 
	r=strcmp(a,b);
	if(r==0) printf("YES");
	else printf("NO");
}

void sort(char x[], int n)
{
	int i,j,k,t;
	for(i=0;i<n-1;i++)
	{
		k=i;
		for(j=i+1;j<n;j++)
		if(x[j]>x[k]) k=j;
		if(k!=i)
		{
		t=x[i];x[i]=x[k];x[k]=t;
		}
	}
}
int main()
{
int k,i,j;
char a[20],b[20];
scanf("%s",a);
scanf("%s",b);
k=0;
for(i=0;i<strlen(a);i++)
{
	for(j=0;j<20;j++)
	{
		if(a[i]==b[j])
		{	k=k+1;
	//	a[i]='0';
		b[j]='0';
		break;
		}
		
	//	if(b[i]==a[j]&&b[i]!='0'&&a[j]!='0')
		//	m=1;
	}
}
if(strlen(a)!=strlen(b))
printf("NO");
else{
if(k==strlen(a))
printf("YES");
else printf("NO");

}

return 0;
	
}
int main()
{
char a[10000],b[10000],tem;
scanf("%s%s",a,b);
for (int i=strlen(a)-1;i>=0;i--)
    for (int j=0;j<i;j++)
        if (a[j]>a[j+1])
        {
        tem=a[j];
        a[j]=a[j+1];
        a[j+1]=tem;
        }
for (int i=strlen(b)-1;i>=0;i--)
    for (int j=0;j<i;j++)
        if (b[j]>b[j+1])
        {
        tem=b[j];
        b[j]=b[j+1];
        b[j+1]=tem;
        }
if (strcmp(a,b)==0) printf("YES");
else printf("NO");
}
int main()
{
        int cishu[2][54]={0},l1,l2,i;
        char input1[100],input2[100];
        scanf("%s%s",input1,input2);
        l1=strlen(input1);
        l2=strlen(input2);
        if (l1!=l2)
        {
                printf("NO\n");
                return 0;
        }
        for(i=0;i<l1;i++)
        {
                if(input1[i]>='a'&&input1[i]<='z')
                {
                        cishu[0][input1[i]-'a']++;
                }
                else if(input1[i]>='A'&&input1[i]<='Z')
                {
                        cishu[0][input1[i]-'A'+26]++;
                }
        }
        for(i=0;i<l2;i++)
        {
                if(input2[i]>='a'&&input2[i]<='z')
                {
                        cishu[1][input2[i]-'a']++;
                }
                else if(input2[i]>='A'&&input2[i]<='Z')
                {
                        cishu[1][input2[i]-'A'+26]++;
                }
        }
        for(i=0;i<54;i++)
        {
                if(cishu[0][i]!=cishu[1][i])
                {
                        printf("NO\n");
                        return 0;
                }
        }
        printf("YES\n");
        return 0;
}
int main()
{ char s1[20],s2[20];
  int i,j,lab=0;
  scanf("%s %s",s1,s2);
  if(strlen(s1)!=strlen(s2)) printf("NO");else{
  for(i=0;i<strlen(s1);i++)
	 { for(j=0;j<strlen(s1);j++)
		  if(s1[i]==s2[j]) {s2[j]='\0';lab=1;break;}
		  if(lab==0) {printf("NO");lab=1;break;}
		  lab=0;
  }


  if(lab==0) printf("YES");}
return 0;
}
int main ()
{
	int i=0,j=0,num=0;
	char a[1000]={0},b[1000]={0};
	cin>>a>>b;
	if(strlen(a)==strlen(b))
	{
	while(a[i]!=0)
	{
		j=0;
		while(b[j]!=0)
		{
			if(b[j]==a[i])
			{
				b[j]=' ';
				a[i]=' ';
				break;
			}
			j++;
		}
		i++;
	}
	i=0;
	while(a[i]!=0)
	{
		if(a[i]!=' '||b[i]!=' ')
			num++;
		i++;
	}
	if(num>0)
		cout<<"NO";
	else
		cout<<"YES";
	}
	else
		cout<<"NO";
	return 0;
}
void main()
{
	int i,j,m[130]={0},n[130]={0};
	char a[300],b[300];
    	scanf("%s%s",a,b);
	if(strlen(a)!=strlen(b))
		printf("NO");
	else
	{
		for(i=0;i<=strlen(a)-1;i++)
		{
			++m[a[i]];
			++n[b[i]];
		}
		for(j=50;j<=122;j++)
			if(m[j]!=n[j])
			{
			    printf("NO\n");
			    break;
			}
		 if(j==123)
		 printf("YES\n");
	}
}
void main()
{
	char a[20],b[20];
	int i,k,j;
	scanf("%s %s",a,b);
	k=strlen(a);
	if(k!=strlen(b))
		printf("NO");
	else
	{
	for(i=0;i<k;i=i+1)
	{
		for(j=0;j<k;j=j+1)
		{
			if(a[i]==b[j])
			{
				a[i]='0';
				b[j]='0';
				break;
			}
		}
	}
	j=0;
	for(i=0;i<k;i=i+1)
	{
		if(a[i]!='0')
		{
			j=1;
			break;
		}
	}
	if(j==0)
		printf("YES");
	else
		printf("NO");
	}
}
void paixu(char a[],int n)
{
	char m,k;
	int p,j,i;
	for(i=0;i<n;i++)
		scanf("%d",&a[i]);
	for(i=0;i<n;i++)
	{
		m=a[i];
		k=i;
		for(j=i;j<n;j++)
			if(a[j]>m)
			{
				m=a[j];
				k=j;
			}
		p=a[k];
		a[k]=a[i];
		a[i]=p;
	}
}
void main()
{
	char a[100],b[100];
	scanf("%s %s",a,b);
	paixu(a,strlen(a));
	paixu(b,strlen(b));
	int n=strcmp(a,b);
	if(n==0)
		printf("YES\n");
	else
		printf("NO\n");
}
int main()
{
	char s1[100]={0}, s2[100]={0};
	int i, j, a1[26]={0}, a2[26]={0}, b1[26]={0}, b2[26]={0};
	scanf("%s%s",s1,s2);
	for(i=0;i<26;i++)
    {
        for(j=0;j<strlen(s1);j++)
        {
            if(s1[j]==i+65)
                a1[i]=a1[i]+1;
			if(s1[j]==i+97)
				a2[i]=a2[i]+1;
		}
    }
	for(i=0;i<26;i++)
    {
        for(j=0;j<strlen(s2);j++)
        {
            if(s2[j]==i+65)
                b1[i]=b1[i]+1;
			if(s2[j]==i+97)
				b2[i]=b2[i]+1;
		}
    }
	j=0;
	for(i=0;i<26;i++)
	{
		if(a1[i]==b1[i]&&a2[i]==b2[i])
			j++;
		else
			j=0;
	}
	if(j==26)
		printf("YES\n");
	else
		printf("NO\n");
	return 0;
}
void main()
{
	int a[400]={0},b[400]={0};
	char c1[500]={0},c2[500]={0};
	int i=0;
	scanf("%s %s",c1,c2);
	while(c1[i]!=0)
	{
		a[c2[i]]++;
		i++;
	}
	i=0;
	while(c2[i]!=0)
	{
		b[c2[i]]++;
		i++;
	}
	for(i=0;i<400;i++) if(a[i]!=b[i]) i=1000;
	if(i!=400) printf("NO\n");
	else printf("YES\n");
}
main(){
char a[100],b[100];
int i,j,k;
for(i=0;i<100;i++)
{
a[i]='\0';
b[i]='\0';
}
int C[26],c[26],D[26],d[26];
for(i=0;i<26;i++){
c[i]=0;
C[i]=0;
d[i]=0;
D[i]=0;
}
scanf("%s %s",a,b);
for(i=0;i<100;i++){
if(a[i]>='A'&&a[i]<='Z')
C[a[i]-'A']++;
if(a[i]>='a'&&a[i]<='z')
c[a[i]-'a']++;
if(b[i]>='A'&&b[i]<='Z')
D[b[i]-'A']++;
if(b[i]>='a'&&b[i]<='z')
d[b[i]-'a']++;
}
for(i=0;i<26;i++){
if(c[i]!=d[i]||C[i]!=D[i]){
printf("NO");
break;
}
}
if(i==26)
printf("YES");
}
int main()
{
	int a1[128],a2[128],i;
	char t1[1000],t2[1000];
	cin>>t1>>t2;
	for(i=0;i<128;i++)
		a1[i]=a2[i]=0;
	i=0;
	while(t1[i]&&t2[i])
	{
		a1[t1[i]]++;
		a2[t2[i]]++;
		i++;
	}
	if(t1[i]||t2[i])cout<<"NO";
	else
	{
		for(i=0;i<128;i++)
			if(a1[i]!=a2[i])
			{
				cout<<"NO";
				break;
			}
		if(i==128)cout<<"YES";
	}
	return 0;
}
int main()
{
	char a[1000],b[1000],e;
	int len1,len2,i,j;
	scanf("%s",&a);
	scanf("%s",&b);
	len1=strlen(a);
	len2=strlen(b);

	for(i=0;i<len1;i++)
	{
		for(j=0;j<len2;j++)
		{
			if(a[i]==b[j])
			{
				e=b[j];
				b[j]=b[i];
				b[i]=e;
				break;
			}
		}
	}
	if(strcmp(a,b)==0)
		printf("YES");
	else
		printf("NO");	
		return 0;
}
int main()
{
   char a[50];
   cin >> a;
  
   char b[50];
   cin >>b;
   int i,j,k=0,l1,l2;
   l1=strlen(a);
   l2=strlen(b);
   i=0;
   if(l1!=l2)
   {
     cout << "NO" << endl;
   }
   else
   {
     while(i<l1)
     {
         for(j=0;j<l1;j++)
         {
           if(b[i]==a[j])
           {
             k++;
             
              a[j]=0;
              break;
           }
         }
         i++;
     } 
       
       if(k==l1)
       {
         cout << "YES" << endl;
       }
       else
       {
        cout << "NO" << endl;
       }
   }
   cin.get(); cin.get(); cin.get();
   return 0;
}
main()
{
char a[50],b[50];
int i,j,k,len,kill;
i=0;
do
{i++;scanf ("%c",&a[i]);} while (a[i]!=' ');
len=i;
i=0;
do
{i++;scanf ("%c",&b[i]);} while (b[i]!='\n');
if (i!=len) {printf ("NO");goto end_of_evan;}
len=len-1;
death_and_rebirth:
kill=0;
for (i=len;i>=1;i--)
	{
		if (b[i]==a[len]) 
			{
			kill=1;
			for(j=i;j<len;j++)
				{
					b[j]=b[j+1];
				}
			len=len-1;goto NGE_loop;
			}
	}
	NGE_loop:
	if (kill==0) {printf ("NO");goto end_of_evan;}
	else if (len>=1) goto death_and_rebirth;

if (kill==1) printf("YES");


end_of_evan:
return 0;
}
void main()
{
	char a[10000],b[10000];
	int i,j,l,h;
	scanf("%s%s",a,b);
	l=strlen(a);
	h=strlen(b);
	if(l!=h)
	{
		printf("NO");
	}
	else
	{
		for(i=0;i<l;i++)
		{
			for(j=0;j<h;j++)
			{
				if(a[i]==b[j])
				{
					b[j]=' ';
					break;
				}
			}
			if(j==h)
			{
				printf("NO");
				break;
			}
		}
		if(i==l)
		{
			printf("YES");
		}
	}
}
char str1[100],str2[100];
void inverse(char *str)
{
	int t,flag,i;
	char temp;
	t=strlen(str);
	do{
		flag=0;
		for(i=0;i<t-1;i++)
		{
			if(str[i]<str[i+1])
			{
				temp=str[i];
				str[i]=str[i+1];
				str[i+1]=temp;
				flag=1;
			}
		}
		if(flag==0)
			break;
	}while(t--);
}
void main()
{
	scanf("%s %s",str1,str2);
	inverse(str1);
	inverse(str2);
	if(strcmp(str1,str2)==0)
		printf("YES");
	else
		printf("NO");
}
void main()
{char a[50],b[50];int c[256]={0},d[256]={0};
 scanf("%s",a);
 scanf("%s",b);
 int i,j,k;
 for(i=0;a[i]!='\0';i++)
  {j=a[i];
   c[j]=c[j]+1;}
 for(i=0;b[i]!='\0';i++)
  {k=b[i];
   d[k]=d[k]+1;}
 for(i=0;i<256;i++)
  if(c[i]!=d[i])
    break;
 if(i<255)
  printf("NO");
 else
  printf("YES");
}
int compare(char b[],int n,char a)
{
	int i,j;
	for(i=0;i<n;++i)
		if(a==b[i])
		{
			for(j=i;j<n-1-i;++j)
				b[j]=b[j+1];
			return(0);
		}
		else
			continue;
	return(1);		
}		
main()
{
	char a[100],b[100];
	int len1,len2,i,t=0;
	scanf("%s%s",a,b);
	len1=strlen(a);
	len2=strlen(b);
	if(len1==len2)
	{
		for(i=0;i<len1;++i)
			if(compare(b,len2,a[i]))
			{
				printf("NO\n");
				t=1;
				break;
			}
		if(t==0)
			printf("YES\n");
	}
	else
		printf("NO\n");
}
int main(int argc, char* argv[])
{
	int n1,n2,i,j,k;
	char str1[50]={'\0'},str2[50]={'\0'};
	scanf("%s%s",&str1,&str2);
	n1=strlen(str1);
	n2=strlen(str2);
	k=0;
    for(i=0;i<n1;i++)
	{
		for(j=0;j<n2;j++)
			if(str1[i]==str2[j])
			{
				k++;
			str1[i]='1';
			str2[j]='1';
			break;
			}
	}
	if(k==n1&&k==n2)
		printf("YES");
	else
		printf("NO");

	return 0;
}
void main()
{
	char s1[100],s2[100];
	int a1[100]={0},a2[100]={0};
	int l1,l2,i,j;
	int panding;
	panding=1;
	scanf("%s",&s1);
	scanf("%s",&s2);
	l1=strlen(s1);
	l2=strlen(s2);
	for (i=0;i<=l1-1;i++)
		for (j=0;j<=l1-1;j++)
			if ((s1[i]==s2[j])&&(a2[j]==0))
			{
				a2[j]=1;
				break;
			}
	for (i=0;i<=l1-1;i++)
		if (a2[i]==0) panding=0;
    if (l1!=l2) panding=0;
	if (panding==0) printf("NO");
		else printf("YES");
}
struct letter
{
	char name;
	int times;
}leta[57],letb[57];

int main()
{
	int i,lena,lenb,t=0;
	char a[30]={0},b[30]={0};
	for(i=0;i<57;i++)
	{
		leta[i].name='a'+i;letb[i].name='a'+i;
		leta[i].times=0;letb[i].times=0;
	}
	scanf("%s %s",a,b);
	lena=strlen(a);lenb=strlen(b);
	if(lena!=lenb)
	{
		printf("NO");
		return 0;
	}else
	{
		for(i=0;i<lena;i++)
		{
			leta[a[i]-65].times++;
			letb[b[i]-65].times++;
		}
		for(i=0;i<57;i++)
		{
			if(leta[i].times!=letb[i].times)
				t=1;
		}
		if(t==0)
			printf("YES");
		else
			printf("NO");
	}
}
int main()
{
    int i,j;
    char a[10000],b[10000];
    scanf("%s%s",a,b);
    if(strlen(a)==strlen(b))
    {
        for(i=0;i<strlen(a)-1;i++)
        {
            for(j=0;j<strlen(a)-i-1;j++)
            {
                if(a[j]>a[j+1])
                {
                    char s;
                    s=a[j+1];
                    a[j+1]=a[j];
                    a[j]=s;
                }
            }
        }
        for(i=0;i<strlen(b)-1;i++)
        {
            for(j=0;j<strlen(b)-i-1;j++)
            {
                if(b[j]>b[j+1])
                {
                    char s;
                    s=b[j+1];
                    b[j+1]=b[j];
                    b[j]=s;
                }
            }
        }
    }   
    if(strcmp(a,b)==0)
        printf("YES");
    else
        printf("NO");
  
    return 0;
}
main()
{
     char a[1001],b[1001];
     scanf("%s %s",a,b);
     int x1[26]={0};
     int x2[26]={0};
     int s1[26]={0};
     int s2[26]={0};
     int a1,b1;
     a1=strlen(a);
     b1=strlen(b);
     if(a1!=b1)
     printf("NO");
     else
     {for(int i=0;i<a1;i++)
     {
             if(a[i]<='z'&&a[i]>='a')
             x1[a[i]-'a']++;
             if(a[i]<='Z'&&a[i]>='A')
             x2[a[i]-'A']++;
             if(b[i]<='z'&&b[i]>='a')
             s1[b[i]-'a']++;
             if(b[i]<='Z'&&b[i]>='A')
             s2[b[i]-'A']++;
     }
     int count=0;
     for(int i=0;i<26;i++)
     {
             if(s1[i]!=x1[i])
             {
                             count++;
                             break;
             }
             if(s2[i]!=x2[i])
             {
                             count++;
                             break;
             }
     }
     if(count==0)
     printf("YES");
     else
     printf("NO");
     }
}
void main()
{
 char a[100],b[100];
 int n,m,k,i,j,l,o,p,c,d,b1,b2,h=1;
 scanf("%s%s",a,b);
 n=strlen(a);
 m=strlen(b);
 if(n!=m)
  printf("%s","NO");
 else
  {
   for(i=0;i<n;i++)
    (int)a[i];
   for(j=0;j<m;j++)
    (int)b[j];
   for(c=0;c<n-1;c++)
     {
      for(d=0;d<n-1-c;d++)
       if(a[d]>=a[d+1])
        {
         b1=a[d];
         a[d]=a[d+1];
         a[d+1]=b1;
        }
     }
   for(o=0;o<m-1;o++)
    {
     for(p=0;p<m-1-o;p++)
      if(b[p]>=b[p+1])
       {
        b2=b[p];
        b[p]=b[p+1];
        b[p+1]=b2;
       }
    }
   for(k=0;k<n;k++)
    {
     if(a[k]!=b[k])
      h=0;
    }
   if(h==0)
    printf("%s","NO");
   else printf("%s","YES");
  }
}
void sort(int array[],int n)
{ 
	int i,j,k,t;
	for(i=0;i<n-1;i++)
	{ 
		k=i;
		for(j=i+1;j<n;j++)
			if(array[j]<array[k]) k=j;
			if(k!=i)
			{
				t=array[i];
				array[i]=array[k];
				array[k]=t;
			}
	}
}
main()
{
	char a[100],b[100];
	int a1[100],b1[100];
	int l1,l2,i,j,k=0;
	scanf("%s%s",a,b);
	l1=strlen(a);
	l2=strlen(b);
    for(i=0;i<l1;i++)
		a1[i]=(int)a[i];
	for(j=0;j<l2;j++)
		b1[j]=(int)b[j];
	sort(a1,l1);sort(b1,l2);
	if(l1!=l2) printf("NO");
	else 
	{
		for(i=0;i<l1;i++)
		{
			if(a1[i]!=b1[i])
			{
				printf("NO");
				k=1;
				break;
			}
		}
		if(k==0) printf("YES");
	}
}
void main()
{
	int c,d,m[123]={0},n[123]={0},i,x,y;
	char a[100],b[100];
	scanf("%s%s",a,b);
	c=strlen(a);
	d=strlen(b);
	if(c!=d)
		y2;
	else
	{
		for(i=0;i<c;i++)
		{
			x=a[i];
			m[x]++;
			y=b[i];
			n[y]++;
		}
		for(i=65;i<=122;i++)
		{
			if(m[i]!=n[i])
				break;
		}
		if(i!=123)
			y2;
		else
			y1;
	}
}
void main()
{
	char n[10000],m[10000];
	int a[30]={0},b[30]={0},c[30]={0},d[30]={0};
	int i,j,w,q,z=0;
	scanf ("%s %s",n,m);
	w=strlen(n);
	q=strlen(m);
	if (w==q)
	{for (i=0;i<26;i++)
	{
		for (j=0;j<w;j++)
		{
			if (n[j]==65+i)
				a[i]=a[i]+1;
			if (n[j]==97+i)
				b[i]=b[i]+1;
			if (m[j]==65+i)
				c[i]=c[i]+1;
			if (m[j]==97+i)
				d[i]=d[i]+1;
		}
	}
	for (i=0;i<26;i++)
	{
		if (a[i]==c[i]&&b[i]==d[i])
			z=1;
		else 
		{
			printf("NO\n");
			z=0;
			break;
		}
	}
	if (z==1)
		printf("YES\n");
	}
	if (w!=q)
		printf("NO\n");
}
int main()
{
	int i,j;
	char a[10000],b[10000],c;
	scanf("%s %s",a,b);
	for(i=0;i<strlen(a);i++)
		for(j=0;j<strlen(a)-1;j++)
		{
			if(a[j]>a[j+1]) 
			{
				c=a[j];
				a[j]=a[j+1];
				a[j+1]=c;
			}
		}
	//printf("%s",a);
	for(i=0;i<strlen(b);i++)
		for(j=0;j<strlen(b)-1;j++)
		{
			if(b[j]>b[j+1]) 
			{
				c=b[j];
				b[j]=b[j+1];
				b[j+1]=c;
			}
		}
	if(strcmp(a,b)==0) printf("YES");
	else printf("NO");
	return 0;
}
void main()
{
	char a[100],b[100],*p=a;
	int i,f=0,t=0;
	scanf("%s",&a);
	scanf("%s",&b);
	if(strlen(a)!=strlen(b))
	{t=1;
	 printf("NO\n");
	}
	for(;*p=='\0';p++)
	{for(i=0;i<strlen(b);i++)
		if(*p==b[i])
		{f=1;
		 b[i]=0;
		 break;
		}
	 if(f==0)
	 {printf("NO\n");
	  t=1;
	  break;
	 }
	 else
		 f=0;
	}
	if(t==0)
		printf("YES\n");
}
void num(char a[],int c[],int l[],int n)
{
     int i,t;
     for(i=0;i<n;i++)
     {
                     if(a[i]<91&&a[i]>64){t=a[i]-65;c[t]=c[t]+1;}
                     if(a[i]<123&&a[i]>96){t=a[i]-97;l[t]=l[t]+1;}
     }
}
int main()
{
    void num(char a[],int c[],int l[],int n);
    char a[500]={'\0'},b[500]={'\0'};
    int cap[2][26]={0},lit[2][26]={0},t=1,i,m,n;
    scanf("%s%s",a,b);
    n=strlen(a);
    m=strlen(b);
    num(a,cap[0],lit[0],n);
    num(b,cap[1],lit[1],m);
    for(i=0;i<26;i++)
    {
    if(cap[0][i]==cap[1][i]&&lit[0][i]==lit[1][i]);
    else {t=0;break;}
}
if(t==0)printf("NO");
else printf("YES");
}
void main()
{
int i,j,x=0,y=0;
char a[10],b[10];

scanf("%s %s",a,b);

for(i=0;i<strlen(a);i++)x=x+a[i];
for(j=0;j<strlen(b);j++)y=y+b[j];

if(x==y)printf("YES");
else printf("NO");
}
void main()
{
	void change(char a[],int n);
	int n;
	char a[100],b[100];
	scanf("%s %s",a,b);
	n=strlen(a);
	change(a,n);
	change(b,n);
	if(strcmp(a,b)==0)
		printf("YES");
	else printf("NO");
}
void change(char a[],int n)
{
	int i,j;
	char t;
	for(i=0;i<n-1;i++)
		for(j=i+1;j<n;j++)
		{
			if(a[i]>a[j])
			{
				t=a[i];
				a[i]=a[j];
				a[j]=t;
			}
		}
}
void main()
{  char aa[1000],bb[1000];int m,j,i,t,c;
   scanf("%s",aa);scanf("%s",bb);
    if (strlen(aa)!=strlen(bb))printf("NO");
   else{ m=strlen(aa);
        for(j=1;j<=m-1;j++)
     for(i=0;i<=m-j-1;i++)
     {
       if(aa[i]<aa[i+1]){t=aa[i];aa[i]=aa[i+1];aa[i+1]=t;}
       if(bb[i]<bb[i+1]){t=bb[i];bb[i]=bb[i+1];bb[i+1]=t;}
      }
     c=strcmp(aa,bb);
   if(c==0)printf("YES");
   else printf("NO");}
}
void main()
{
	char a[100],b[50];
	int i,j=0,k;
	gets(a);
	for(i=0;a[i]!=' ';i++);
	
	if(strlen(a)==2*i+1)
	{
		for(i=i+1;i<strlen(a);i++,j++)
		b[j]=a[i];
	
	    for(i=0;i<strlen(a)/2;i++)
		{
			for(j=0;j<strlen(a)/2;j++)
			{
				if(b[j]==a[i])
					b[j]=a[i]=2;
			}
		}
		k=strlen(a);
		for(i=0;i<strlen(a)/2&&b[i]==a[i];i++);
		if(i==strlen(a)/2)
			printf("YES");
		else
            printf("NO");
			
	}

	else
		printf("NO");
}
main()
{
	char a[100]={0},b[100]={0};
	scanf("%s",a);scanf("%s",b);
	int m,n;
	m=strlen(a);n=strlen(b);
	if(m!=n) printf("NO");
	else
	{
		int i,j,k,l;
		for(i=0;i<m;i++)
		{
			for(j=0;j<m;j++)
			{
				if(b[j]==a[i]) break;
			}
			if(j==m) break;
			else b[j]='\0';
		}
		if(i<m) printf("NO");
		else printf("YES");
	}
	return 0;
}
int main()
{
 int i,j,k=0;
 char str1[100],str2[100];
 scanf("%s %s",str1,str2);
 if(strlen(str1)==strlen(str2))
 {
	int m=strlen(str1);
	for(i=0;i<m;i++)
		for(j=0;j<m;j++)
		{
			if (str2[j]=='0') continue;
			else if(str1[i]==str2[j]) {str2[j]='0';k++;break;}
		}
    if(k==m) printf("YES"); else printf("NO");
 }
else if(strlen(str1)!=strlen(str2)) printf("NO");
}
/*
 * pl.cpp
 *
 *  Created on: 2011-12-25
 *      Author: wuch
 */
int main(){
	char a[1000],b[1000],temp;
	int l1,l2,i,j;
	cin>>a>>b;
	l1=strlen(a);
	l2=strlen(b);
	for (i=0;i<l1-1;i++){
		for (j=i+1;j<l1;j++){
			if (a[i]<a[j]){
				temp=a[i];
				a[i]=a[j];
				a[j]=temp;
			}
		}
	}
	for (i=0;i<l2-1;i++){
		for (j=i+1;j<l2;j++){
			if (b[i]<b[j]){
				temp=b[i];
				b[i]=b[j];
				b[j]=temp;
			}
		}
	}
	if (strcmp(a,b)==0) cout<<"YES";
	else cout<<"NO";
	return 0;
}
int main()
{
	char str[200],zfc[200],x;
	int i,j,h,len1,len2,m=0,n=0,s;
	scanf("%s %s",str,zfc);
	len1=strlen(str);
	len2=strlen(zfc);
	if(len1!=len2)
	{printf("NO");}
	else
	{
    	for(i=0;i<len1;i++)
		{s=0;m=0;
	    	for(j=0;j<len2;j++)
			{
		    	if(str[i]==zfc[j])
				{
			    	m++;
				}
			}
			x=str[i];
			for(h=0;h<len1;h++)
			{	
				if(str[h]==x)
				{s++;}
			}
	    	if(m!=s)
			{
			printf("NO");
			break;
			}
	    	else
			{n++;}
		}
	    if(n==len1)
		{printf("YES");}
	}
	return 0;
}
int main()
{
    char a[100],b[100];
    cin>>a>>b;
    int number1=strlen(a);
    int number2=strlen(b);
    if(number1!=number2)
    cout<<"NO";
    else
    {
        char record1[100],record2[100];
        int num1[100]={0},num2[100]={0};
        int i,k=0,m=0,j;
        record1[k]=a[0];
        record2[m]=b[0];
        num1[k]=1;
        num2[m]=1;
        for(i=1;i<number1;i++)
        {
            for(j=0;j<=k;j++)
            {
                if(a[i]==record1[k])
                    {num1[k]++;
                    break;
                    }
                else
                {
                    k++;
                    record1[k]=a[i];
                    num1[k]++;
                    break;
                }
            }
              for(j=0;j<=m;j++)
            {
                if(b[i]==record2[m])
                    {num2[m]++;
                    break;
                    }
                else
                {
                    m++;
                    record2[m]=b[i];
                    num2[m]++;
                    break;
                }
            }
        }
        if(k!=m)
        cout<<"NO";
        else
        {
            int sum=0;
            for(i=0;i<=k;i++)
            {
                for(j=0;j<=k;j++)
                {
                    if(record1[i]==record2[j]&&num1[i]==num2[j])
                    {
                        sum++;
                        record2[j]=' ';
                        num2[j]=0;
                        break;
                    }
                }
            }
            if(sum==k+1)
            cout<<"YES";
            else cout<<"NO";
        }
    }
    return 0;
}
int main()
{
	char a[number], s[number], tmp;
	int i, m, j;
	for(i=0;i<100;i++)
	{
		a[i]=' ';
		s[i]=' ';
	}
	scanf("%s%s", a, s);
	for(j=0;j<98;j++)
	{
		for(i=0;i<98-j;i++)
		{
			if(a[i]<a[i+1])
			{
	    		tmp=a[i];
    			a[i]=a[i+1];
    			a[i+1]=tmp;
			}
	    	if(s[i]<s[i+1])
			{
	    		tmp=s[i];
	    		s[i]=s[i+1];
	    		s[i+1]=tmp;
			}
		}
	}
	m=1;
	for(i=0;i<98;i++)
	{
		if(a[i]!=s[i])
		{
			m=0;
			break;
		}
		if(a[i]==' ')
			break;
	}
	if(m==0)
		printf("NO\n");
	else if(m==1)
		printf("YES");
	return 0;
}