semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main()
{
    char a[100]={0},b[100]={0},c;
    int i=0,j,s1,s2;
    scanf("%s",a);
    scanf("%s",b);
    s1=strlen(a);
    s2=strlen(b);
    if(s1!=s2)
    {
        printf("NO");
        return 0;
    }
    for(i=0;i<s1;i++)
    {
        for(j=0;j<s1;j++)
        {    
            if(a[i]==b[j])
            {
                b[j]=0;
                break;
            }
            else 
                continue;
        }
    }
    for(i=0;i<s1;i++)
    {
        if(b[i]!=0)
        {
            printf("NO");
            return 0;
        }
    }
    printf("YES");
    return 0;
}
void main()
{
	int n,i,j,p=0;
	char a[50],b[50];
	scanf("%s %s",a,b);
	n=strlen(a);
	if(n!=strlen(b))printf("NO");
	else
	{
		for(i=0;i<n;i++)
		{
			p=0;
			for(j=0;j<n;j++)
			{
				if(a[i]==b[j])
				{
					p=1;
					b[j]=2;
					break;
				}
			}
			if(p==0)
			{
				printf("NO");
				p=3;
				break;
			}
		}
		if(p!=3)
			printf("YES");
	}
}
int main(int argc, char* argv[])
{
	char a[100],b[100];
	scanf("%s%s",a,b);
	int i,j;
	int c,d;
	int t;
    c=strlen(a);
	d=strlen(b);
	for (i=c-1;i>0;i--) {
		for (j=0;j<i;j++) {
			if (a[j]>a[j+1])
			{t=a[j];a[j]=a[j+1];a[j+1]=t;}}
	}
    for (i=d-1;i>0;i--) {
		for (j=0;j<i;j++) {
			if (b[j]>b[j+1])
			{t=b[j];b[j]=b[j+1];b[j+1]=t;}}
	}
    if (strcmp(a,b)==0)  printf("YES");
	else printf("NO");

	
	
	return 0;

}
int main(int argc, char* argv[])
{
	char s1[100],s2[100];
	int i,j,c,d;
	char t;
	scanf ("%s %s",s1,s2);
    c=strlen(s1);
	d=strlen(s2);
	for (i=0;i<c;i++)
	{	for (j=c-1;j>=i+1;j--)
	{   if (s1[j]<s1[j-1]) 
	{   t=s1[j];
	    s1[j]=s1[j-1];
        s1[j-1]=t;
	}
	}
	}
	for (i=0;i<d;i++)
	{	for (j=d-1;j>=i+1;j--)
	{   if (s2[j]<s2[j-1]) 
	{   t=s2[j];
	    s2[j]=s2[j-1];
        s2[j-1]=t;
	}
	}
	}
    if (strcmp(s1,s2)==0) printf("YES");
	else printf("NO");
          



		return 0;

}
int main()
{
	char c[200]={'\0'},c1[100]={'\0'},c2[100]={'\0'};
	int a,b,d,e=0,f=0,g,j;
	gets(c);
	for (a=0;a<100;a++)
	{
		if (c[a]==' ')
		{
			break;
		}
		else
		{
			c1[a]=c[a];
		}
	}
	for (b=0;b<100;b++)
	{
		c2[b]=c[a+1+b];
	}
	g=strlen(c1);
	j=strlen(c2);
	if (g!=j)
	{
		printf("NO\n");
		goto end;
	}
	for (a=0;a<g;a++)
	{ 
		e=0;
		for (b=0;b<j;b++)
		{
			if (c1[a]==c2[b])
			{
				e++;
				c2[b]=' ';
				break;
			}
		}
		if (e==0)
		{
			printf("NO\n");
			goto end;
		}
	}
	if (a==g)
	{
		printf("YES\n");
	}
end:;
}
void main()
{
	char a[1000],b[1000];
	int c[52]={0},d[52]={0};
	int numa,numb,i,j;
	scanf("%s %s",a,b);
	numa=strlen(a);
	numb=strlen(b);
	for (j=0;j<26;j++)
	{
	     for (i=0;i<numa;i++)
		     if (a[i]=='A'+j)
			     c[j]++;
		 for (i=0;i<numb;i++)
			 if (b[i]=='A'+j)
				 d[j]++;
	}
	for (j=26;j<52;j++)
	{
	     for (i=0;i<numa;i++)
		     if (a[i]=='a'+j-26)
			     c[j]++;
		 for (i=0;i<numb;i++)
			 if (b[i]=='a'+j-26)
				 d[j]++;
	}
	for (i=0;i<51;i++)
	{
		if (c[i]!=d[i])
		{
			printf("NO");
			break;
		}
	}
	if (i==51)
		printf("YES");
}
void main()
{
	char a[500],b[500],c[500],d[1],e[1],f[1];
	int i,j,m=0;
	gets(a);
	for(i=0;a[i]!=32;i++)
	{
		b[i]=a[i];
		b[i+1]='\0';
	}
	for(i=strlen(a)-1;a[i]!=32;i--)
		c[i-strlen(b)-1]=a[i];
	c[strlen(a)-strlen(b)-1]='\0';
	if(strlen(b)!=strlen(c))
		printf("NO");
	else
	{
		for(i=0;i<strlen(b);i++)
		{
			for(j=0;j<strlen(b)-1;j++)
			{
				if(b[j]<b[j+1])
				{
					d[0]=b[j];
			 	    b[j]=b[j+1];
				    b[j+1]=d[0];
				}
			}
		}
		for(i=0;i<strlen(c);i++)
		{
			for(j=0;j<strlen(c)-1;j++)
			{
				if(c[j]<c[j+1])
				{
					d[0]=c[j];
			 	    c[j]=c[j+1];
				    c[j+1]=d[0];
				}
			}
		}
		for(i=0;i<strlen(c);i++)
		{
			if(b[i]==c[i])
				m++;
		}
		if(m==strlen(c))
			printf("YES");
		else
			printf("NO");
	}
}
void main()
{
	int i,j;
	char str[20],str1[20],str2[20];
	scanf("%s%s",str,str1);
	if(strlen(str)<strlen(str1))
	{
		strcpy(str2,str);
		strcpy(str,str1);
		strcpy(str1,str2);
	}
	for(i=0;i<strlen(str);i++)
		for(j=0;j<strlen(str1);j++)
		{
			if(str[i]==str1[j])
			{
				str1[j]='0';
				break;
			}
		}
	for(i=0;i<strlen(str);i++)
	{
		if(str1[i]!='0')
		{
			printf("NO\n");
			break;
		}
	}
	if(i>strlen(str)-1)
		printf("YES\n");
}
void main()
{
     char a[20],b[20],m,n;int i,j,t;t=1;
	 scanf("%s %s",a,b);
	 for(i=0;i<strlen(a);i++)
	 {
		 for(j=0;j<strlen(a)-i;j++)
		 {
			 if(a[j]>a[j+1]) 
			 {m=a[j];
			 a[j]=a[j+1];
			 a[j+1]=m;}
		 }
	 }
     for(i=0;i<strlen(b);i++)
	 {
		 for(j=0;j<strlen(b)-i;j++)
		 {
			 if(b[j]>b[j+1]) 
			 { n=b[j];
			 b[j]=b[j+1];
			 b[j+1]=n;}
		 }
	 }
	 for(i=0;i<strlen(a);i++)
	 {
		 if(a[i]!=b[i]) 
         {t=0;break;}
		 else continue;
	 }
	 if(t==0)printf("NO");
	 if(t==1)printf("YES");
}
int num[128];
char str[1000];
int main()
{
    int l1,n;

    scanf("%s",str);
    n=strlen(str);
    for (l1=0;l1<n;l1++)
        num[str[l1]]++;
    scanf("%s",str);
    n=strlen(str);
    for (l1=0;l1<n;l1++)
        num[str[l1]]--;

    for (l1=0;l1<128;l1++)
        if (num[l1]!=0)
            break;
    if (l1==128)
        printf("YES\n");
    else
        printf("NO\n");
    return 0;
}
void array(char a[])
{
	int l,i,j,max;
	char aa;
	l=strlen(a);
	for(i=0;i<l;i++)
	{max=i;
	 for(j=i+1;j<l;j++)
		 if(a[j]>a[max]) max=j;
	 aa=a[i];
	 a[i]=a[max];
	 a[max]=aa;
	}
}
void main()
{
	char a[100],b[100];
	scanf("%s%s",a,b);
	array(a);
	array(b);
	if(strcmp(a,b)==0) printf("YES");
	else printf("NO");
}
int main(int argc, char* argv[])
{
    char str1[1000],str2[1000];
	int len1,len2;
	int i,j,temp,num=0;
	int a[1000],b[1000];
	scanf("%s",str1);
	scanf("%s",str2);
	len1=strlen(str1);
	len2=strlen(str2);
	for(i=0;i<len1;i++)
	{
		a[i]=str1[i];
		b[i]=str2[i];
	}
	for(i=0;i<len1;i++)
		for(j=0;j<len1-1-i;j++)
		{
			if(a[j]<a[j+1])
			{
				temp=a[j];
				a[j]=a[j+1];
				a[j+1]=temp;
			}
		}
	for(i=0;i<len1;i++)
		for(j=0;j<len1-1-i;j++)
		{
			if(b[j]<b[j+1])
			{
				temp=b[j];
				b[j]=b[j+1];
				b[j+1]=temp;
			}
		}
	for(i=0;i<len1;i++)
	{
		if(len1!=len2)
		{
			printf("NO");
			break;
		}
		if(a[i]==b[i])
			num++;
	}
	if(num==len1)
		printf("YES");
	if(num!=len1&&num!=0)
	    printf("NO");
	return 0;
}
int main(){
	char a[100],b[100];
	for(int k=0;k<100;k++){
		a[k]='{';
		b[k]='{';
	}
	int a1[100]={0},b1[100]={0};
	cin>>a>>b;
	a[strlen(a)]='{';
	b[strlen(b)]='{';
	for(int i=0;i<100;i++){
	   a1[a[i]-'A']++;
	   b1[b[i]-'A']++;
	}
	for(int j=0;j<100;j++){
		if(a1[j]!=b1[j]){
			cout<<"NO"<<endl;
            return 0;
		}
	}
	cout<<"YES"<<endl;
	return 0;
}
int main ()
{
	int i,j,max=0;
	char a[1000],b[1000],c;
	scanf ("%s %s",a,b);
	for (i=0;i<1000;i++)
	{
		if (a[i]=='\0')
			break;
		for (j=i;j<1000;j++)
		{
			if (a[j]=='\0')
				break;
			else 
			{
				if (a[j]>a[max])
					max=j;
			}
		}
		c=a[i];
		a[i]=a[max];
		a[max]=c;
		max=i+1;
	}
		for (i=0;i<1000;i++)
	{
		if (b[i]=='\0')
			break;
		for (j=i;j<1000;j++)
		{
			if (b[j]=='\0')
				break;
			else 
			{
				if (b[j]>b[max])
					max=j;
			}
		}
		c=b[i];
		b[i]=b[max];
		b[max]=c;
		max=i+1;
	}
	if (strcmp(a,b)==0)
		printf ("YES\n");
	else
		printf("NO\n");
	return 0;
}
void main()
{
  int m,i,j,x,y,s;
  char s1[100],s2[100];
 scanf("%s",&s1);
  scanf("%s",&s2);
  x=strlen(s1);
  y=strlen(s2);
  if (x==y)
  {
for (j=1;j<=50;j++)
	  {
  for (i=0;i<=x-2;i++)
  {
	  if (s1[i]<s1[i+1])  
	  { 
	    m=s1[i];
		s1[i]=s1[i+1];
	    s1[i+1]=m;
	  }
}}
for (j=1;j<=50;j++)
	  {
 for (i=0;i<=x-2;i++)
  {
	  if (s2[i]<s2[i+1])  
	  { 
	    m=s2[i];
		s2[i]=s2[i+1];
	    s2[i+1]=m;
	  }
}}
 for (i=0;i<=x-1;i++)
 {
   if (s1[i]!=s2[i])
   {printf("NO");break;} 
   if (i==x-1) printf("YES");
 }
}
  else {printf("NO");}
}
int main()
{
	char a[100],b[100];
	int c[100]={0};
	int flag=0,j,i;
	int end=1;
	scanf("%s %s",a,b);
	if(strlen(a)==strlen(b))
	{
	for(i=0;i<strlen(a);i++)
	{
		flag=0;
		for(j=0;j<strlen(b);j++)
		{
			if(a[i]==b[j]&&c[j]==0)
			{
				c[j]=1;
				flag=1;
				break;
			}
		}
		if(flag==0) 
		{
			end=0;
			break;
		}
	}
	}
	else end=0;
	if(end==0) printf("NO");
	else printf("YES");
	return 0;
}
void main()
{
   char a[1000],b[1000];
   int i,j,m,n,k,q,p,t;
   scanf("%s%s",a,b);
   m=strlen(a);
   n=strlen(b);
   if(m!=n) printf("NO\n");
   else 
   {
      for(i=0;i<m;i++)
      {
        for(j=0,p=0;j<m;j++)
        if(a[i]==a[j]) p++;
        for(k=0,q=0;k<n;k++)
        if(a[i]==b[k]) q++;
        if(q!=p) 
        {
          printf("NO\n");
          break;
        }
        else t++;
      }
      if(t==n) printf("YES\n");
   }
}
char s[50],w[50];
int len1;
int len2;
int main()
{
    scanf("%s %s",s,w);
    len1=strlen(s);
    len2=strlen(w);
    void paixu(char x[],int len);
    if(len1!=len2) printf("NO");
    else
    {
        paixu(s,len1);
        paixu(w,len2);
        if(strcmp(s,w)==0) printf("YES");
        else printf("NO");
    }
}

void paixu(char x[],int len)
{
     int i,j;
     char t;
     for(i=0;i<=len-2;i++)
     {
       for(j=i+1;j<=len-1;j++)
       {
         if(x[j]>x[i]){t=x[j];x[j]=x[i];x[i]=t;}
       }
     }
}
int main()
{
	int i,j,s=0,l;
	char s1[255],s2[255];
	scanf("%s%s",&s1,&s2);
	l=strlen(s2);
	for(i=0;i<strlen(s1);i++)
	{
		for(j=0;j<l;j++)
		{
			if(s1[i]==s2[j]) {s++,s2[j]=0;break;}
			}
		}
		if(s<l||strlen(s1)!=l) printf("NO");
		else  printf("YES");
		
	return 0;
	
	}
int main()
{int i,j;
char m,a[100]={0},b[100]={0};
 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]){m=a[j];a[j]=a[j+1];a[j+1]=m;}}}
 for(i=0;i<=strlen(b);i++){for(j=0;j<strlen(b)-1;j++){if(b[j]<b[j+1]){m=b[j];b[j]=b[j+1];b[j+1]=m;}}}
 if(strcmp(a,b)==0)printf("YES\n");else printf("NO\n");
 return 0;}
int main()
{
	char a[1000],b[1000];
	int i,j,m,n;scanf("%s%s",a,b);
	m=strlen(a);
	n=strlen(b);
	if(m!=n) printf("NO");
	else
	{
		for(i=0;i<m;i++)
		{
			for(j=0;j<n;j++)
			{
				if(a[i]==b[j])
				{
					b[j]=0;
					break;
				}
			}
			if(j==n)
			{printf("NO");
			break;}
		}
		if(i==strlen(a))
			printf("YES");
	}
	
	return 0;
}
void main()
{
	int i, j, LEN, NUM1, NUM2, tmp=0;
	char a[20], b[20];
	scanf("%s%s", &a, &b);
	if(strlen(a)!=strlen(b))
		printf("NO\n");
	else
	{
		LEN=strlen(a);
		for(i=0; i<LEN; i++)
		{
			NUM1=0;
			NUM2=0;
			for(j=0; j<LEN; j++)
				if(a[i]==a[j])
					NUM1++;
			for(j=0; j<LEN; j++)
				if(a[i]==b[j])
					NUM2++;
			if(NUM1!=NUM2)
			{
				printf("NO\n");
				break;
			}
			tmp++;
		}
		if(tmp==LEN)
			printf("YES\n");
	}
}
int main(int argc, char* argv[])
{
	char str1[50],str2[50];
	int len1,len2;
	int i,j,m=0;

	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<len2;j++)
			{
				if(str1[i]==str2[j] && str2[j]!=0)
				{
					str2[j]=0;
					m=1;break;
				}
				else
					m=0;
			}
		}

		if(m)
			printf("YES\n");
		else
			printf("NO\n");
	}

	return 0;
}
void change(char a[])
{int i,j,t,x;
for(i=0;a[i]!='\0';i++)
{t=a[i];x=i;
for(j=i;a[j]!='\0';j++) {if(a[j]>=t) {t=a[j];x=j;}}
a[x]=a[i];
a[i]=t;
}
}
void main()
{char a[100];
char b[100];
int i;
for(i=0;i<0;i++) {a[i]='\0';b[i]='\0';}
scanf("%s %s",a,b);
change(a);
change(b);
for(i=0;a[i]!='\0';i++) {if(a[i]!=b[i]) {printf("NO");break;}}
if(a[i]=='\0') printf("YES");
}
int main()
{
	char zfc1[100],zfc2[100];
	scanf("%s %s",zfc1,zfc2);
	char *p1=zfc1,*p2=zfc2;
	int judge=1,judge2=0;
	for(;*p1!='\0';p1++){
		judge2=0;
		for(p2=zfc2;*p2!='\0';p2++){
			if(*p1==*p2){
				*p2=' ';
				judge2=1;
				break;
			}
		}
		if(judge2!=1){
			judge=0;
			break;
		}
	}
	if(judge&&strlen(zfc1)==strlen(zfc2)){
		printf("YES");
	}else{
		printf("NO");
	}
	return 0;
}
void main()
{
	char s1[100],s2[100];
	int i,j;

	scanf("%s%s",s1,s2);
	if(strlen(s1)!=strlen(s2))
	{
		printf("NO\n");
		return;
	}
	
	for(i=0;i<(int)strlen(s1);i++)
	{
		for(j=0;j<(int)strlen(s2);j++)
		{
			if(s1[i]==s2[j])
			{
				s2[j]=-1;
				break;
			}
		}

		if(j>=(int)strlen(s2))
		{
			printf("NO");
			return;
		}	
	}
	printf("YES\n");
}
int f(char a[]);
void main()
{
	char a[50],b[50];
	int num1[52]={0},num2[52]={0},len1,len2,l,m,i;
    scanf("%s%s",a,b);
	len1=strlen(a);
	len2=strlen(b);
	for(i=0;i<=len1-1;i++)
	{
		if(a[i]>='a'&&a[i]<='z')
			l=a[i]-97;
		else if(a[i]>='A'&&a[i]<='Z')
			l=a[i]-39;
		num1[l]++;
	}

	for(i=0;i<=len2-1;i++)
	{
		if(b[i]>='a'&&b[i]<='z')
			m=b[i]-97;
		else if(b[i]>='A'&&b[i]<='Z')
			m=b[i]-39;
		num2[m]++;
	}
	i=0;
	while(num1[i]==num2[i]&&i<=51)
		i++;
	if(i==52)
		printf("YES");
	else
		printf("NO");
}
int main()
{
	char a[2][100]={0};
	int b[2][256]={0},i,j,s,m,n;
	scanf("%s%s",a[0],a[1]);
	m=strlen(a[0]);n=strlen(a[1]);
	if(m!=n)printf("NO");
	else{for(i=0;i<2;i++)
		for(j=0;j<m;j++)
		b[i][a[i][j]]++;
	s=1;for(j=0;j<256;j++)
		if(b[0][j]!=b[1][j]){s=0;break;}
		if(s)printf("YES");
		else  printf("NO");}}
int main()
{
	int a[100];
	int b[100];
	char c;
	int i,j;
	int m,n;
	int t;
	int x;
	for(i=0;(c=getchar())!=' ';i++)
	{
		a[i]=c;
	}
	for(j=0;(c=getchar())!='\n';j++)
	{
		b[j]=c;
	}
	if (i!=j)
		printf("NO");
	else
	{
		for (n=0;n<(i-1);n++)
		{
			if(a[n+1]<a[n])
			{
				t=a[n];
				a[n]=a[n+1];
				a[n+1]=t;
				if(n!=0)
				n=n-2;
			}
		}
		for (m=0;m<(i-1);m++)
		{
			if(b[m+1]<b[m])
			{
				t=b[m];
				b[m]=b[m+1];
				b[m+1]=t;
				if(m!=0)
				m=m-2;
			}
		}

		for (x=0;x<i;x++)
		{
			if(a[x]!=b[x])
				break;
		}
			if (x!=i)
			{
				printf("NO");
			}
			else if(x==i && a[i-1]!=b[i-1])
			{
				printf("NO");
			}
			else if(x==i && a[i-1]==b[i-1])
			{
				printf("YES");
			}
	}

	return 0;
		
}
int main()
{
	int alen,blen,i,j;
	char e;
	char a[50]={'\0'};
	char b[50]={'\0'};
	scanf("%s %s",a,b);
	alen=strlen(a);
	blen=strlen(b);


	for(i=1;i<alen;i++)
	{
		for(j=0;j<alen-i;j++)
		{
			if(a[j]>a[j+1])
			{
				e=a[j];
				a[j]=a[j+1];
				a[j+1]=e;
			}
		}
	}
	
	
	for(i=1;i<blen;i++)
	{
		for(j=0;j<blen-i;j++)
		{
			if(b[j]>b[j+1])
			{
				e=b[j];
				b[j]=b[j+1];
				b[j+1]=e;
			}
		}
	}
	if(strcmp(a,b)==0)
	{
		printf("YES\n");
	}
	else
	{
		printf("NO\n");
	}
	return 0;
}
void main()
{
	int i,p,a;
	char c1[100],c2[100];
	for(i=1;i<100;i++) c1[i]=c2[i]=0;
	scanf("%s %s",c1,c2);
	i=0;
	p=0;
	while(c1[i]!=0)
	{
		i++;
	}
	a=i;
	i=0;
    while(c2[i]!=0)
	{
		i++;
	}
	if(a==i)
	{
		i=0;
	while(c1[i]!=0)
	{
		for(p=0;p<100;p++)
			if(c2[p]==c1[i]) c2[p]=c1[i]=0;
		i++;
	}
	p=0;
	for(i=0;i<100;i++) if(c1[i]!=0) p++;
	if(p==0) printf("YES");
    else printf("NO");
	}
	else printf("NO");
}
int compare(const void* a,const void* b)
{
	return*(char*)b-*(char*)a;
}
void main()
{
	int i;
	char a[100],b[100];
	scanf("%s %s",a,b);
	if(strlen(a)!=strlen(b))
	{
		printf("NO");
	}
	else
	{
        qsort(a,strlen(a),sizeof(char),compare);
	    qsort(b,strlen(a),sizeof(char),compare);
	    for(i=0;i<strlen(a);i++)
		{
		    if(a[i]!=b[i])
		    	break;
		}
    	if(i==strlen(a))
	    	printf("YES");
    	else
		    printf("NO");
	}
return 0;
}
void main()
{
	int i,j,m[52]={0},n[52]={0};
	char a[100]={0},b[100]={0};
    scanf("%s%s",a,b);
	if(strlen(a)!=strlen(b))
		printf("NO");
	else if(strlen(a)==strlen(b)) 
	{
		for(i=0;i<100;i++)
		{
		if(a[i]>='a'&&a[i]<='z')
			m[a[i]-'a'+26]++;
		if(a[i]>='A'&&a[i]<='Z')
			m[a[i]-'A']++;
		if(b[i]>='a'&&b[i]<='z')
			n[b[i]-'a'+26]++;
		if(b[i]>='A'&&b[i]<='Z')
			n[b[i]-'A']++;
		} 
	    
		for(j=0;j<52;j++)
		{
			if(m[j]!=n[j])
			{
			    printf("NO");
			    break;
			}
		    if(j==51)
			    printf("YES");
		}
	}
}
main()
{
int num1[52],num2[52],i,k,flag=1;
char a[20],b[20],n1,n2;
scanf("%s%s",a,b);
n1=strlen(a);
n2=strlen(b);
  for(i=0;i<52;i++)
  {
  num1[i]=0;
  num2[i]=0;
  }
  for(i=0;i<n1;i++)
  {
   if(a[i]>=65&&a[i]<=90)
   {
   k=a[i]-65;
   num1[k]++;
   }
   if(a[i]>=97&&a[i]<=122) 
   {
   k=a[i]-71;
   num1[k]++;
   }
  }
  
  for(i=0;i<n2;i++)
  {
   if(b[i]>=65&&b[i]<=90)
   {
   k=b[i]-65;
   num2[k]++;
   }
   if(b[i]>=97&&b[i]<=122) 
   {
   k=b[i]-71;
   num2[k]++;
   }
  }
  for(i=0;i<52;i++)
  {
  if(num1[i]!=num2[i]) flag=0;
  
  }
  if(flag) printf("YES");
  else printf("NO");
}
void main()
{
	char a[100]={""},b[100]={""};
	int lena;
	int lenb;
	int i,j;
	int flag;

	scanf("%s%s",a,b);
	
	lena=strlen(a);
    lenb=strlen(b);

    if(lena==lenb)
	{
		for(i=0;i<lena;i++)
	    {
			flag=0;
			for(j=0;j<lenb;j++)
		    {
				if(a[i]==b[j])
				{
					a[i]='0';
				    b[j]='0';
					flag=1;
				    break;
			    }
		    }
			//if(flag==0)printf("NO\n");
	    }
		if(strcmp(a,b)==0)printf("YES\n");
		else printf("NO\n");
	}
	else printf("NO\n");
}
void main()
{
  char str[50],s[50];
  int p,i,k,m,n,a[128],b[128];
  scanf("%s%s",s,str);
  m=strlen(s);
  n=strlen(str);
  if(m!=n)printf("NO");
  else
  {
     for(i=0;i<=127;i++)
     {a[i]=0;b[i]=0;}
     for(i=0;i<m;i++)
     {
        p=s[i];
        a[p]++;
      }
     for(i=0;i<m;i++)
     {
        p=str[i];
        b[p]++;
      } 
     k=0; 
     for(i=1;i<=127;i++)
     if(a[i]!=b[i]) k=1;
     if(k==0)printf("YES");
     else printf("NO");
  }
}
void main()
{
	int k;
	char a[100],b[100],*p1,*p2,*p3,temp;
	p1=a;p2=b;p3=b;
	scanf("%s%s",p1,p2);
	if (strlen(a)!=strlen(b)) printf("NO");
	else for (;*p1!='\0';p1++)
	{
		k=0;
		for (;*p2!='\0';p2++)
			if (*p2==*p1)
			{
				temp=*p2;*p2=*p3;*p3=temp;
				p3++;
				p2=p3;
				k=1;
				break;
			}
		if (k==0)
		{
			printf("NO\n");
			break;
		}
	}
	if (k==1) printf("YES\n");
}
int main()
{
	char c1[50]={0},c2[50]={0};
	int i,j,l1,l2;
	scanf("%s %s",c1,c2);
	l1=strlen(c1);
	l2=strlen(c2);
	if(l1!=l2)
	{
		printf("NO\n");
		return 0;
	}
	for(i=0;i<l1;i++)
	{
		for(j=0;j<l2;j++)
		{
			if(c1[i]==c2[j])
			{
				c2[j]=0;
				break;
			}
			if(j==l2-1)
			{
				printf("NO\n");
				return 0;
			}
		}
	}
	printf("YES\n");
	return 0;
}
int main(){
	char s[100];
	char s1[100];
	int geshu,geshu1;
	int l,l1,i,j,pd=0;
	scanf("%s%s",s,s1);
	l=strlen(s);
	l1=strlen(s1);
	if(l!=l1){
		printf("NO");
	}
	else{
		for(i=0;i<l;i++){
			geshu=0;
			geshu1=0;
			for(j=0;j<l;j++){
				if(s[j]==s[i]){
					geshu++;
				}
				if(s1[j]==s[i]){
					geshu1++;
				}
			}
			if(geshu!=geshu1){
				pd=1;
			}
		}
		if(pd==0){
			printf("YES");
		}
		else{
			printf("NO");
		}
	}
	return 0;
}
int main(){
	char mid,a[100],b[100];
	int i,j,stop,length,dif;
	scanf("%s%s",a,b);
	length=strlen(a);
	for(i=1;i<=length;i++){
		for(j=0;j<length-i;j++){
			if(a[j+1]<a[j]){
				mid=a[j];
				a[j]=a[j+1];
				a[j+1]=mid;
			}
			if(b[j+1]<b[j]){
				mid=b[j];
				b[j]=b[j+1];
				b[j+1]=mid;
			}
		}
	}
	dif=strcmp(a,b);
	if(dif==0){
		printf("YES");
	}else{
		printf("NO");
	}
//	printf("%s\n%s",a,b);
	scanf("%d",&stop);
	return 0;
}
void move(char a[])
{   char t;
     int l,i,j;
	 l=strlen(a);
	 for(i=0;i<l;i++)
	 for(j=i+1;j<l;j++)
	 {if(a[j]+'0'<a[i]+'0')
	 {t=a[j];
	 a[j]=a[i];
	 a[i]=t;}
	 }
}
void main()
{
	char a[10],b[10];
	scanf("%s %s",a,b);
	move(a);
	move(b);
	if(strcmp(a,b)==0)printf("YES");
	else printf("NO");
}
void main()
{
	char a[100],b[100];
	int i,j,k=0,x;
	scanf("%s%s",a,b);

if(strlen(a)==strlen(b))
{
	for(i=0;a[i]!='\0';i++)
	{
		for(j=0;b[j]!='\0';j++)
			if(a[i]==b[j])
			{
				for(x=j;b[x]!='\0';x++)
					b[x]=b[x+1];
				k++;
				break;
			}
	}

	if(k==strlen(a))
		printf("YES");
	else
		printf("NO");
}

else
printf("NO");

}
main()
{
    char s[100],c,a[100]={0};
    int i,n=0,p=1,w=0;
    while((c=getchar())!=' ')
    {
        for(i=1;i<=n;i++)
        {
            if(c==s[i])
            {
                a[i]++;
                w=1;
                break;
            }
        }
        if(w) w=0;
        else s[++n]=c;
    }
    while((c=getchar())!='\n')
    {
        for(i=1;i<=n;i++)
        {
            if(c==s[i])
            {
                a[i]--;
                break;
            }
        }
        if(i==n+1)
        {
            p=0;
            break;
        }
    }
    if(p==1)
    {
        for(i=1;i<=n;i++)
        {
            if(a[i]!=-1)
            {
                p=0;
                break;
            }
        }
    }
    if(p==0) printf("NO");
    else printf("YES");
}
int main()
{
    char a[1000],b[1000];
    int i,la,lb,A[1000]={0},B[1000]={0};
    scanf("%s",a);
    scanf("%s",b);
    la=strlen(a);
    lb=strlen(b);
    if(la!=lb)
    {
        printf("NO");
        return 0;
    }
    else
    {
        for(i=0;i<la;i++)
        {
            A[a[i]]++;
            B[b[i]]++;
        }
    }
    for(i=0;i<1000;i++)
    {
        if(A[i]!=B[i])
        {
        printf("NO");
        break;
        }
        if(i==999)
        {
            printf("YES");
            break;
        }
    }
    return 0;
}
void sort(char a[],long n)
{
	if(n==1)
		return;
	else
	{
		long i,k;
		char temp;
		for(k=0,i=0;i<n;i++)
			if(a[i]>a[k])
				k=i;
		temp=a[k];
		a[k]=a[n-1];
		a[n-1]=temp;//switch
		sort(a,n-1);//sort the rest
	}

}

void main()
{
	char a[N],b[N];
	scanf("%s%s",a,b);

	sort(a,strlen(a));
	sort(b,strlen(b));
	if(strcmp(a,b)==0)
		printf("YES");
	else
		printf("NO");
}
void main()
{
int flag(char x[100],char y[100]);
char stro[100],strt[100];
int f;
scanf("%s%s",stro,strt);
f=flag(stro,strt);
if(f==0)
printf("YES");
else
printf("NO");
}

int flag(char x[100],char y[100])
{
	int i,j,c,m,n;
	m=strlen(x);
	n=strlen(y);
	if(m!=n)
		c=1;
	else
	{
		for(i=0,c=m;i<m;i++)
			for(j=0;j<n;j++)
				if(x[i]==y[j])
				{
					x[i]=0;
					y[j]=0;
					c--;
					break;
				}
				}
	return(c);
}
int main()
{
	char a[100],b[100];
	int i,atag[100],btag[100],alen,blen;
	scanf("%s",a);
	scanf("%s",b);
	alen=strlen(a);
	blen=strlen(b);
	for(i=0;i<100;i++){
		atag[i]=0;
		btag[i]=0;
	}
	if(alen==blen){
		for(i=0;i<alen;i++){
			atag[a[i]-'A']++;
		}
		for(i=0;i<blen;i++){
			btag[b[i]-'A']++;
		}
		for(i=0;i<100;i++){
			if(atag[i]==btag[i]){
				continue;
			}
			else break;
		}
		if(i==100){
			printf("YES");
		}
		else printf("NO");
	}
	else printf("NO");
	return 0;
}
void main()
{
   int i,j;
   char a[40],b[40],*pa,*pb,t;
   scanf("%s%s",a,b);  
   pa=&a[0];
   pb=&b[0];
   for(i=0;i<strlen(a);i++)
	   for(j=i;j<strlen(a);j++)
		   if(*(pa+i)<*(pa+j))
		   {
		     t=*(pa+i);
			 *(pa+i)=*(pa+j);
			 *(pa+j)=t;
		   }
   for(i=0;i<strlen(b);i++)
	   for(j=i;j<strlen(b);j++)
		   if(*(pb+i)<*(pb+j))
		   {
		     t=*(pb+i);
			 *(pb+i)=*(pb+j);
			 *(pb+j)=t;
		   }
   if(strcmp(a,b)==0) printf("YES");
   else printf("NO");
 
}
int main()
{
	char a[10000],b[10000],c;
	scanf("%s %s",&a,&b);
	int i,j,m,n;
	m=strlen(a);
	n=strlen(b);
	if(m!=n)
		printf("NO");
	if(m==n&&m==1){
	if(a[0]==b[0])
		printf("YES");
	if(a[0]!=b[0])
		printf("NO");
	}
	if(m==n&&m>1){
	for(j=m-1;j>0;j--){
		for(i=0;i<j;i++){
			if(a[i]>a[i+1]){
			c=a[i];
			a[i]=a[i+1];
			a[i+1]=c;
			}
		}
	}
	for(j=n-1;j>0;j--){
		for(i=0;i<j;i++){
			if(b[i]>b[i+1]){
			c=b[i];
			b[i]=b[i+1];
			b[i+1]=c;
			}
		}
	}
	m=strcmp(a,b);
	if(m==0)
		printf("YES");
	if(m==1)
		printf("NO");
	}
	return 0;
}
void sxpl(char x[]);
void main()
{
	char a[50],b[50];
	scanf("%s%s",a,b);
	sxpl(a);
	sxpl(b);
	if(strcmp(a,b)==0) printf("YES\n");
	else printf("NO\n");
}
void sxpl(char x[])
{
	int i,j,k,l;
	char m;
	l=strlen(x);
	for(i=0;i<l-1;i++)
	{
		k=i;
		for(j=i+1;j<l;j++)
			if(x[j]<x[k]) k=j;
		m=x[k];x[k]=x[i];x[i]=m;
	}
}
void main()
{
	char str1[100],str2[100];
	int num1[52]={0},num2[52]={0};
	char str3[52]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
	int i,j,max,min;
	int flag;
	int flag1,flag2,flag3;
	scanf("%s %s",str1,str2);
	max=strlen(str1);
	min=strlen(str2);
	if(max!=min)
		printf("NO");
	else if(max==min)
	{
		for(i=0;i<52;i++)
	{
			for(j=0;j<max;j++)
			{
		if(str1[j]==str3[i])
		{	
			num1[i]++;
		}
		if(str2[j]==str3[i])
		{
			num2[i]++;
		}
			}
	}

	for(i=0;i<max;i++)
	{
		flag=0;
		flag1=0;
		for(j=0;j<min;j++)
		{
			if(str2[j]==str1[i])
			{
				flag=1;
			}
		
		flag1=1;
		}
			if(flag==0)
			{
				
				printf("NO");
				return;
			}
	}
	
	for(i=0;i<52;i++)
	{
		flag2=0;
		flag3=0;
		if(num1[i]==num2[i])
		{
			flag2=1;
		}
		flag3=1;
		if(flag2==0)
		{	
			printf("NO");
			return;
		}
	}
	}
	if(flag1==1&&flag3==1)
		printf("YES");
	
}