extern int hash1[500]={0},hash2[500]={0};
void count(char *p,int *t)
{
	int i,l=strlen(p);
	for(i=0;i<l;i++)
		t[p[i]]++;
}
void main()
{
	int i,f=0;
	char s1[100],s2[100];
	scanf("%s %s",s1,s2);
	count(s1,hash1);
	count(s2,hash2);
	for(i=0;i<500;i++)
		if (hash1[i]!=hash2[i])
		{
			f=1;break;
		}
	if (f) printf("NO");
	else printf("YES");
}


void main()
{
	int i,j,n,m;
	char a[100],b[100];
	scanf("%s",a);
	scanf("%s",b);
	n=strlen(a);
         m=strlen(b);
         if(m==n)
         {
	for(i=0;i<n;i++)
	{
		for(j=0;j<n;j++)
			if(a[i]==b[j])break;
		if(j==n)break;
		else b[j]='&';
	}
	if(i<n)printf("%s\n","NO");
	else printf("%s\n","YES");
         }
         else printf("%s\n","NO");
}


void main()
{
	char a[100],b[100],temp;
	int i,j,l1,l2,can=1;
	scanf("%s %s",a,b);
	l1=strlen(a);
	l2=strlen(b);
	if(l1!=l2) printf("NO");
	else
	{
		for(i=0;i<l1;i++)
		{
			if(can==1)
			{
				can=0;
				for(j=i;j<l1;j++)
				{
					if(b[j]==a[i]&&can==0)
					{
						temp=b[i];
						b[i]=b[j];
						b[j]=temp;
						can=1;
					}
				}
			}
		}
		if(can==0) printf("NO");
		else printf("YES");
	}
}


void main()
{
 int m,n;
 int i,j,p,q;

 char str1[100],str2[100],temp;
 scanf("%s%s",str1,str2);
 m=strlen(str1);
 for(i=0;i<m-1;i++)
	 for(j=0;j<m-1-i;j++)
		 if(str1[j]>str1[j+1])
		 {
				temp=str1[j];
				str1[j]=str1[j+1];
				str1[j+1]=temp;
		 }

n=strlen(str2);
for(p=0;p<n-1;p++)
   for(q=0;q<n-1-p;q++)
	   if(str2[q]>str2[q+1])
	   {
		temp=str2[q];
		str2[q]=str2[q+1];
		str2[q+1]=temp;
	   }

 if(strcmp(str1,str2)==0)
	 printf("YES");
 else
	 printf("NO");
 }


void main()
{
 char a[20],b[20];int i,j,c,d;
 scanf("%s%s",a,b);
 c=strlen(a);d=strlen(b);
 if(c!=d)printf("NO");
 else {
for(i=0;a[i]!=0;i++)
 {for(j=0;b[j]!=0;j++)
	   if(a[i]==b[j])
		 { b[j]='0';break;}
	   if(b[j]==0)
	   {printf("NO");break;break;}
 }
 printf("YES");}
}


int main()
{

    int i,j,amount,n;
    char small[51],big[51];
    scanf("%s%s",small,big);
    n=strlen(small);
    if(strlen(small)==strlen(big)){
       for(i=0;big[i]!='\0';i++){
            for(j=0;small[j]!='\0';j++){
                 if(small[j]==big[i]){
                                       small[j]=small[n-1];
                                       small[n-1]='\0';
                                       n=n-1;

                                        }
                 }

            }
        if(n==0){
                 printf("YES\n");
        }else {
              printf("NO\n");
              }
    }else
        printf("NO\n");

     return 0;
}


int main()
{
	char a[10],b[10];
	int numa[130]={0},numb[130]={0},i,flag=1;
	scanf("%s %s",&a,&b);
	for(i=0;i<(int)strlen(a);i++)
		numa[a[i]]++;
	for(i=0;i<(int)strlen(b);i++)
		numb[b[i]]++;
	for(i='A';i<'z';i++)
		if(numa[i]!=numb[i])
		{
			flag=0;
			break;
		}
		if(flag)
			printf("YES");
		else printf("NO");
		return 0;
}


int main(){
	char w[2000];//??
	char s[2000];
	char m;
	int i,k;
	scanf("%s %s",s,w);
	if (strlen(s)==strlen(w))
	{
		for (i=0;s[i]!='\0';i++)
		{
			for(k=i;w[k]!='\0';k++)
			{
				if (s[i]==w[k])
				{
					m=w[k];
					w[k]=w[i];
					w[i]=m;
					break;
				}
			}
		}
		if (strcmp(s,w)==0)
		{
			printf("YES");
		}
		else
		{
			printf("NO");
		}

	}
	else
	{
		printf("NO");
	}
	return 0;
}


void main()
{
	char a[100],b[100];
	int flag=0,i,j,len,c[100]={'0'};
	scanf("%s%s",a,b);
	len=strlen(a);
	if(strlen(a)!=strlen(b))
		printf("NO");
	else
	{
		for(i=0;i<len;i++)
		{
			for(j=0;j<len;j++)
			{
				if(c[j]==0)
				{
					if(a[i]==b[j])
					{
						c[j]=1;
						break;
					}
				}
			}
		}
		for(j=0;j<len;j++)
		{if(c[j]==0) flag=1;}
		if(flag)
			printf("NO");
		else
			printf("YES");

	}

}


int main(){
  int a,b,c,k,i,j;
  char p[100],q[100];
  scanf("%s %s",p,q);
  a=strlen(p);
  b=strlen(q);
  if(a==b){
    for(i=0;i<a;i++){
      k=1;
      for(j=0;j<a-i;j++){
        if(p[i]==q[j]){
          k=0;
          for(c=j;c<a-i;c++)
          q[c]=q[c+1];
          break;
          }
          }
      if(k==1)
      break;
      }
    if(k==1)
    printf("NO");
    if(k==0)
    printf("YES");
    }
  else
    printf("NO");

  }


void main()
{
	char str1[300],str2[300];
	int i,len1,len2,flag=0;
	void rank(char str[300]);
	scanf("%s %s",str1,str2);
	rank(str1);
	rank(str2);
	len1=strlen(str1);
	len2=strlen(str2);
	if(len1!=len2)
		printf("NO\n");
	else
	{
		for(i=0;i<len1;i++)
			if(str1[i]!=str2[i])
			{
				flag++;
				break;
			}

	if(flag==0)
		printf("YES\n");
	else
		printf("NO\n");
	}
}
void rank(char str[300])
{
	char t;
	int i,j,len;
	len=strlen(str);
	for(i=0;i<len-1;i++)
		for(j=i+1;j<len;j++)
			if(str[i]<str[j])
			{
				t=str[i];
				str[i]=str[j];
				str[j]=t;
			}
}


int main()
{
	int c[128], i;
	char str1[N], str2[N];
	memset(c, 0, sizeof(c));
	cin >> str1;
	int len1 = strlen(str1);
	for(i = 0; i < len1; i++)
		c[str1[i]]++;
	cin >> str2;
	int len2 = strlen(str2);
	for(i = 0; i < len2; i++)
		c[str2[i]]--;
	for(i = 0; i < 128; i++)
		if(c[i] != 0)
		{
			cout << "NO" << endl;
			return 0;
		}
	cout << "YES" << endl;
	return 0;
}


int main()
{
	int i,j,n;
	char a[100]={0},b[100]={0};
	scanf("%s %s",a,b);
	if(strlen(a)!=strlen(b))printf("NO");
	else
	{
	n=strlen(a);
	for(i=0;i<n;i++)
	{
		for(j=0;j<n;j++)
		if(a[i]==b[j]){a[i]='1';b[j]='1';break;}
	}
	if(!strcmp(a,b))printf("YES");
	else printf("NO");
	}
	return 0;
}


int main(int argc, char* argv[])
{
	int ALPHA1[27],alpha1[27],ALPHA2[27],alpha2[27],len1,len2,j,i,flag;
	char str1[100],str2[100];
	for(i=0;i<26;i++)
	{
		alpha1[i]=0;
		ALPHA1[i]=0;
		alpha2[i]=0;
		ALPHA2[i]=0;
	}
	scanf("%s %s",str1,str2);
	len1=strlen(str1);
	len2=strlen(str2);
	for(j=0;j<len1;j++)
	{
		for(i=0;i<26;i++)
		{
			if(str1[j]-'a'==i)
				alpha1[i]++;
			if(str1[j]-'A'==i)
				ALPHA1[i]++;
		}
	}
	for(j=0;j<len2;j++)
	{
		for(i=0;i<26;i++)
		{
			if(str2[j]-'a'==i)
				alpha2[i]++;
			if(str2[j]-'A'==i)
				ALPHA2[i]++;
		}
	}

	flag=0;
	for(i=0;i<26;i++)
	{
		if(alpha1[i]==alpha2[i]&&ALPHA1[i]==ALPHA2[i])
			flag=1;
		else
		{
			flag=0;
			break;
		}
	}
	if(1==flag)
		printf("YES\n");
	else
		printf("NO\n");

	return 0;
}


// zuoye.cpp : ??????????????

int main()
{
	char a[100];
	char b[100];
	cin>>a;
	cin>>b;
	int len1,len2;
	len1=strlen(a);
	len2=strlen(b);
	if(len1!=len2)
	{
		cout<<"NO";
		return 0;
	}
	for(int i=0;i<len1-1;i++)
		for(int j=0;j<len1-1-i;j++)
		{
			if(a[j]>a[j+1])
			{
				char t;
				t=a[j+1];
				a[j+1]=a[j];
				a[j]=t;
			}
		}
		for(int i=0;i<len1-1;i++)
			for(int j=0;j<len1-1-i;j++)
			{
				if(b[j]>b[j+1])
				{
					char t;
					t=b[j+1];
					b[j+1]=b[j];
					b[j]=t;
				}
			}
	if(!strcmp(a,b)) cout<<"YES";
	else cout<<"NO";

	return 0;

}


int main()
{
   int length,length1,length2;
   char a[50],b[50];
   int sum=0;
   int n=0;
   int i,j;
   scanf("%s",a);
   scanf("%s",b);
   length1=strlen(a);
   length2=strlen(b);
   if(length1!=length2)
   {
       printf("NO");
   }
   else
   {
       length=length1;
   for(i=0;i<length;i++)
   {
       for(j=0;j<length;j++)
       {
           if(a[i]==b[j])
           {n++;
           b[j]='0';
           break;
           }
        }
        sum++;
   }
    if(n==sum)
   {
       printf("YES");
   }
   else
   {
       printf("NO");
   }
   }
    return 0;
}


int main()
{
	char ch[100],sh[100];
	int a[300]={0},b[300]={0};
	int len1,len2;
	scanf("%s %s",&ch,&sh);
	int i,j;
	len1=strlen(ch);
	len2=strlen(sh);
	if(len1!=len2){
		printf("NO\n");
	}else{
	for(i=0;i<=len1;i++){
		int m;
		m=ch[i];
		a[m]++;
	}
	for(j=0;j<=len2;j++){
		int n;
		n=sh[j];
		b[n]++;
	}
	int k,h=0;
	for(k=0;k<=299;k++){
		if(a[k]!=b[k]){
			printf("NO\n");
			break;
		}else{
			h++;
		}
	}
		if(h==300)
			printf("YES\n");
	}
	return 0;
}


void main()
{
	char a[50],b[50],c;
	int i,j=0,l1,l2;
	scanf("%s%s",a,b);
	l1=strlen(a);l2=strlen(b);
	if(l1!=l2)printf("NO");
	else if(l1==l2)
	{
	for(j=0;j<l1;j++)
		for(i=j;i<l2;i++)
	{
		if(a[j]==b[i])
		{c=b[i];
		b[i]=b[j];
		b[j]=c;
		}

	}
	if(strcmp(a,b)==0)
		printf("YES");
	else printf("NO");
	}
}


int main()
{
	char a[20], b[20];
	int a_, b_, isbreak=0, i, j;
	scanf("%s%s", a, b);
	a_ = strlen(a);
	b_ = strlen(b);
	if(a_!=b_)
		printf("NO\n");
	else
	{
	for(i=0; i<a_; i++)
	{
		for(j=0; j<b_; j++)
		{
			if(b[i]==a[j])
			{
				a[j]='0';
				break;
			}
			if(j==b_-1)
			{
				isbreak=1;
				break;
			}
		}
		if(isbreak==1)
			break;
	}
	if(isbreak==1)
		printf("NO\n");
	else
		printf("YES\n");
	}
	return 0;
}


void change(char x[])
{
	int i,j,l;
	char c;
	l=strlen(x);
	for(i=0;i<l-1;i++)
	{
		for(j=i+1;j<l;j++)
		{
			if(x[i]>x[j]) { c=x[i]; x[i]=x[j]; x[j]=c; }
		}
	}
}
void main()
{
	int d;
	char a[101]={'\0'},b[101]={'\0'};
	scanf("%s%s",a,b);
	change(a);
	change(b);
	if((d=strcmp(a,b))==0) printf("YES");
	else printf("NO");
}


int main()
{
    char a[100],b[100],t;
    scanf("%s %s",a,b);
    int i,j,la=strlen(a),lb=strlen(b);
    if(la!=lb)printf("NO");
    else{
    	for(i=0;i<la;i++)
        	for(j=0;j<la;j++){
				if(a[i]>a[j]){t=a[i];a[i]=a[j];a[j]=t;}
            	if(b[i]>b[j]){t=b[i];b[i]=b[j];b[j]=t;}
        	}
    if(strcmp(a,b))printf("NO");
    else printf("YES");
	}
	return 0;
}


void main()
{
	char a[100],b[100];
	int ans,e,lena,lenb,k,i;
	scanf("%s%s",a,b);
	lena=strlen(a);
	lenb=strlen(b);
	if(lena!=lenb)
		printf("NO");
	else
	{
		for(k=1;k<lena;k++)
		{
			for(i=0;i<lena-k;i++)
			{
				if(a[i]>a[i+1])
				{
					e=a[i+1];
					a[i+1]=a[i];
					a[i]=e;
				}
			}
		}
		for(k=1;k<lenb;k++)
		{
			for(i=0;i<lenb-k;i++)
			{
				if(b[i]>b[i+1])
				{
					e=b[i+1];
					b[i+1]=b[i];
					b[i]=e;
				}
			}
		}
		ans=strcmp(a,b);
		if(ans==0)
			printf("YES");
		else
			printf("NO");
	}
}


void main()
{
	int g(int a[],int b[],int n);
	void f(char a[],int b[]);
	int c[26]={0},d[26]={0};
	char a[100],b[100];
	scanf("%s%s",a,b);
	f(a,c);
	f(b,d);
	if(g(c,d,0)==1) printf("YES\n");
	else printf("NO\n");
}
int g(int a[],int b[],int n)
{
	if(n==25)
	{
		if(a[25]==b[25]) return(1);
		else return(0);
	}
	else
	{
		if(a[n]==b[n]) return(g(a,b,n+1));
		else return(0);
	}
}
void f(char a[],int b[])
{
	int i,p;
	p=strlen(a);
	for(i=0;i<p;i++)
		b[a[i]-'a']++;
}


void sort(char str[])
{
	int i,j;
	char swap;
	for (i=0;i<=strlen(str)-2;i++)
		for (j=0;j<=strlen(str)-2-i;j++)
			if (str[j]>str[j+1])
			{
				swap=str[j];
				str[j]=str[j+1];
				str[j+1]=swap;
			}
}
void main()
{
	char a[50],b[50];
	int flag,i;

	scanf("%s%s",&a,&b);
	sort(a);
	sort(b);
	flag=1;
	for (i=0;i<=strlen(a);i++)
		if (a[i]!=b[i])
		{
			flag=0;
			break;
		}
	if (flag) printf("YES");
	else printf("NO");
}


void main()
{
	void sort(char a[],int n);
	int m,n;
	char a[100],b[100];
	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 temp;
	for(i=0;i<n;i++)
	{ k=i;
	for(j=i+1;j<n;j++)
		if(a[k]>a[j]) k=j;
		if(k!=i)
		{
			temp=a[i];
			a[i]=a[k];
			a[k]=temp;
		}
	}
}


void main()
{
  int l,r=0;
  char *p,*q,a[100],b[100];
  scanf("%s %s",a,b);
  if(strlen(a)!=strlen(b)) printf("NO");
  else
  {
    l=strlen(a);
    for(p=a;p<a+l;p++)
    {
      for(q=b;q<b+l;q++)
      {
        if(*p==*q)
        {
          r++;
          *q=0;
          break;
        }
      }
    }
    if(r==l) printf("YES");
    else printf("NO");
  }
}


void main()
{
	void swap(char str[]);
	char a[100],b[100];
	int len1,len2;
	scanf("%s %s",a,b);
	len1=strlen(a);
	len2=strlen(b);
	if(len1!=len2)
		printf("NO");
	else
	{
		swap(a);
		swap(b);
		if(strcmp(a,b)==0)
			printf("YES");
		else
			printf("NO");
	}
}

void swap(char str[])
{
	int length,i,j;
	char t;
	length=strlen(str);
	for(i=0;i<length-1;i++)
		for(j=0;j<length-1-i;j++)
		{
			if(str[j+1]>str[j])
			{
				t=str[j];
				str[j]=str[j+1];
				str[j+1]=t;
			}
		}
}


void main()
{
	char a[20],b[20],c[20]={""},*p;
	int l1,l2,l,i,j;
	scanf("%s",a);
	scanf("%s",b);
	p=c;
	l1=strlen(a);
	l2=strlen(b);
	l=l1;
	if(l1!=l2)
	printf("NO");
	else
	{
		for(i=0;i<l;i++)
		{
			for(j=0;j<l;j++)
				if(a[i]==b[j])
					*(p+i)=a[i];
		}
		if(strcmp(a,c)==0)
			printf("YES");
		else
			printf("NO");
	}
}


int main()
{
	char str1[100], str2[100];
	int sum = 0, len1, len2, i, j;
	cin >> str1 >> str2;
	len1 = strlen(str1);
	len2 = strlen(str2);
	if (len1 != len2)
	{
		cout << "NO" << endl;
		return 0;
	}
	else
	{
		for (i = 0; i < len1; i++)
		{
			for (j = 0; j < len1; j++)
			{
				if (str2[j] == str1[i])
				{
					str2[j] = 0;
					sum++;
					break;
				}
			}
		}
		if (sum == len1)
			cout << "YES" << endl;
		else
			cout << "NO" << endl;
	}
	return 0;
}


void pai(char a[]);
int main(int argc, char *argv[])
{char a[100],b[100];
scanf("%s%s",a,b);
pai(a);
pai(b);
if(strcmp(a,b)==0)
printf("YES");
else
printf("NO");
    return 0;
}

void pai(char a[])
{int i,b,j;
for(i=0;i<=strlen(a)-1;i++)
{
                           for(j=i+1;j<=strlen(a)-1;j++)
                           if(a[i]>a[j])
                           {b=a[i];a[i]=a[j];a[j]=b;}
}
}


int  main()
{
	char a[100];
	int i,x;
	gets(a);
	x=strlen(a);
	if (x%2==0)
	printf("NO\n");
	else
	{
		for (i=0;i<x;i++)
		{
			int k=0,j;
			for (j=0;j<x;j++)
			{
				if (a[j]==a[i]&&a[j]!=' ')
				k++;
			}
			if (k%2!=0)
			{
				printf("NO\n");
				return 0;
			}
		}
		printf("YES\n");
	}
}


int mycompare(const void *c1,const void *c2)
{
	char *p1=(char*)c1,*p2=(char*)c2;
	return (*p1-*p2);
}
int main()
{
	char a[NUM]={0},b[NUM]={0};
	scanf("%s%s",a,b);
	qsort(a,strlen(a),sizeof(char),mycompare);
	qsort(b,strlen(b),sizeof(char),mycompare);
	if(strcmp(a,b)!=0)
		printf("NO");
	else
		printf("YES");
	return 0;
}


int main()
{
 	char zfc1[100],zfc2[100];
 	int i,l1,l2,x=0;
 	scanf("%s %s",zfc1,zfc2);
 	l1=strlen(zfc1);
 	l2=strlen(zfc2);
 	if(l1!=l2){
			printf("NO");
			}
	else{
		for(i=0;i<l1;i++){
			x=x+(int)zfc1[i]-(int)zfc2[i];
			}
		if(x==0) printf("YES");
		else printf("NO");
		}

    return 0;
}


void main()
{
  void sort(char array[],int n);
  char str1[100],str2[100];
  int i,j,l1,l2,temp;
  scanf("%s %s",str1,str2);
  l1=strlen(str1);
  l2=strlen(str2);
  sort(str1,l1);
  sort(str2,l2);
  if(strcmp(str1,str2)==0)
  printf("YES");
  else printf("NO");
}
 void sort(char array[],int n)
{
  int i,j;
  char ch;
  for(i=0;i<n-1;i++)
  for(j=i+1;j<n;j++)
  {
    if(array[i]>array[j])
    {
      ch=array[i];
      array[i]=array[j];
      array[j]=ch;
     }
   }
}


/*
 * ??????.cpp
 *
 *  Created on: 2010-12-31
 *      Author: ???
 */
int main()
{
	int n,lena,lenb,i,j;
	char a[1001],b[1001];
	cin>>a>>b;
	lena=strlen(a);
	lenb=strlen(b);
	n=0;
	if (lena==lenb)
	{
		for (i=0;i<lena;i++)
			for (j=0;j<lena;j++)
			{
				if (a[i]==b[j])
				{
					n=n+1;
					b[j]='\0';
					break;
				}
			}
		if (n==lena)
			cout<<"YES";
		else
			cout<<"NO";
	}
	else cout<<"NO"<<endl;
	return 0;
}


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);
int la= strlen(a);
int lb= strlen(b);
	if(la!=lb)
	{
		printf("NO");
	}
	else
	{
        qsort(a,la,sizeof(char),compare);
	    qsort(b,lb,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");
	}
}


void count(int a[53], char str[], int len)
{
	int i,m;
	for(i=0;i<=len-1;i++)
	{
		m=str[i];
		a[m]++;
	}
}

int main()
{
	int a1[200]={0},a2[200]={0};
	int len1,len2,t=1,i;
	char str1[1000]={0},str2[1000]={0};
	scanf("%s",str1);
	scanf("%s",str2);
	len1=strlen(str1);
	len2=strlen(str2);
	count(a1,str1,len1);
	count(a2,str2,len2);
	for(i=1;i<=199;i++)
	{
		if(a1[i]!=a2[i]) t=0;
	}
	if(t==1)
		printf("YES\n");
	else if(t==0)
		printf("NO\n");
	return 0;
}


int main()
{
	char a[100],b[100];
	scanf("%s ",a);
	scanf("%s",b);
	int lo,lon;
	lo=strlen(a);
	lon=strlen(b);
	if(lo!=lon)
		printf("NO");
	else
	{
		int c,d,e,f,counta[100]={0},countb[100]={0};
		int numa=0,numb=0;
		char ac[100],bc[100];
		for(c=0;c<lo;c++)
		{
			ac[numa]=a[c];
			for(e=c+1;e<lo;e++)
			{
				if(a[c]==a[e])
				{
					counta[numa]++;
					int g;
					for(g=e;g<lo-1;g++)
					{
						a[g]=a[g+1];
					}
					lo--;
				}
			}
			numa++;
		}
        for(d=0;d<lon;d++)
		{
			bc[numb]=b[d];
			for(f=d+1;f<lon;f++)
			{
				if(b[d]==b[f])
				{
					countb[numb]++;
					int g;
					for(g=f;g<lon-1;g++)
					{
						b[g]=b[g+1];
					}
					lon--;
				}
			}
			numb++;
		}
		if(numa!=numb)
			printf("NO");
		else
		{
			int x,y,z=0;
			for(x=0;x<numa;x++)
			{
				for(y=0;y<numb;y++)
				{
					if((counta[x]==countb[y])&&(ac[x]==bc[y]))
						z++;
				}
			}
			if(z==numa)
				printf("YES");
			else
				printf("NO");
		}
	}
	return 0;
}


int main()
{
	int i,j,l1,l2;
	char w1[20],w2[20];
	scanf("%s %s",w1,w2);
	l1=strlen(w1);
	l2=strlen(w2);
	if(l1==l2)
	{
		for(i=0;i<l1;i++)
		{
			for(j=0;j<l1;j++)
				if(w1[i]==w2[j])
				{
					w2[j]=0;
					goto Q;
				}
			printf("NO");
			goto M;
Q:;
		}
		printf("YES");
M:;
	}
	else
		printf("NO");
	return 0;
}


int main(int argc, char* argv[])
{
	char a[100],b[100];
	int i,j,len1,len2,flag=0;
	scanf("%s",a);
	scanf("%s",b);
	len1=strlen(a);
	len2=strlen(b);
	if(len1!=len2)printf("NO\n");
	else
	{
		for(i=0;i<len1;i++)
		{
			for(j=0;j<len1;j++)
			{
				if(a[i]==b[j])
				{
					b[j]='\0';
					flag++;
					break;
				}
			}
		}
		if(flag==len1)printf("YES\n");
		else printf("NO\n");
	}
	return 0;
}


void main()
{
	char a[1000],b[1000],t;
	int i,j,na,nb;
	scanf("%s %s",a,b);
	na=strlen(a);
	nb=strlen(b);
	if(na!=nb)printf("NO\n");
	else
	{
		for(i=0;i<na;i++)
		{
			for(j=i;j<nb;j++)
			{
				if(a[i]==b[j])
				{
					t=b[j];
					b[j]=b[i];
					b[i]=t;
				}
			}
		}

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


int main()
{   int i,j,t,sum=0;
	char a[100],b[100];
	scanf("%s %s",a,b);
	if(strlen(a)==strlen(b)){
		for(i=0;i<strlen(a)&&a[i]!='\0';i++){
			t=0;
			for(j=0;j<strlen(b)&&b[j]!='\0';j++){
				if(b[j]==a[i]){
					b[j]='0';
					t=1;
					sum++;
					break;
				}
			}
			if(t==0){
				printf("NO");
				break;
			}
		}
		if(sum==strlen(a)){
			printf("YES");
		}
	}
	else{
		printf("NO");
	}
	return 0;
}


int cmp(const void *a,const void *b)
{
	return(*(char*)a-*(char*)b);
}
void main()
{
	char s1[1000],s2[1000];
	scanf("%s%s",s1,s2);
	int n1=strlen(s1),n2=strlen(s2);
	int flag=1;
	if(n1!=n2) {printf("NO");flag=0;}
	qsort(s1,n1,sizeof(s1[0]),cmp);
	qsort(s2,n2,sizeof(s2[0]),cmp);
	if(flag){
	if(strcmp(s1,s2)==0)
		printf("YES");
	else printf("NO");
	}
}


void main()
{
	int a[26],i,x,y,b[26];
	char moto[1000],genzai[1000];
	for(i=0;i<26;i++)
	{
		a[i]=0;
		b[i]=0;
	}
	scanf("%s",moto);
	scanf("%s",genzai);
	x=strlen(moto);
	y=strlen(genzai);
	if(x!=y)
		printf("NO\n");
	else
	{
		for(i=0;i<x;i++)
		{
			a[moto[i]-'a']++;
			b[genzai[i]-'a']++;
		}
		for(i=0;i<25;i++)
			if(a[i]!=b[i])
				break;
		if(i==25)
			printf("YES\n");
		else
			printf("NO\n");
	}
}


void order(char ch[],int len)
{
	int i;
	char temp;
	if(len==1);
	else
	{
		for(i=0;i<len-1;i++)
		{
			if(ch[i]>ch[i+1])
			{
				temp=ch[i];
				ch[i]=ch[i+1];
				ch[i+1]=temp;
			}
		}
		order(ch,len-1);
	}
}
int main()
{
	char ch1[100],ch2[100];
	int len1,len2;
	scanf("%s %s",ch1,ch2);
	len1=strlen(ch1);
	len2=strlen(ch2);
	if(len1!=len2)printf("NO\n");
	else
	{
		order(ch1,len1);
		order(ch2,len1);
		if(strcmp(ch1,ch2)==0)printf("YES\n");
		else printf("NO\n");
	}
	return 0;
}


void paixu(char a[])
{
	int i,j;
	char b;
	for(i=0;i<strlen(a)-1;i++)
	{
		for(j=0;j<strlen(a)-1-i;j++)
		{
			if(a[j]>a[j+1])
			{
				b=a[j];
		     	a[j]=a[j+1];
		    	a[j+1]=b;
			}
		}
	}
}
void main()
{
	char a[100],b[100];
	scanf("%s%s",a,b);
	paixu(a);
	paixu(b);
	if(strcmp(a,b)==0)
		printf("YES");
	else
		printf("NO");
}


int main()
{
  int i,a[129]={0},b[129]={0};
  char c;
  scanf("%c",&c);
  while(c!=' ')
  {
    a[(unsigned short)c]++;
    scanf("%c",&c);
  }
  scanf("%c",&c);
  while(c!='\n')
  {
    b[(unsigned short)c]++;
    scanf("%c",&c);
  }
  for(i=1;i<=128;i++)
  {
     if(a[i]!=b[i]) break;
  }
  if(i>128) printf("YES");
  else printf("NO");
  return 0;
}


void main()
{
	int i,j,t=0,m,n;
	char a[100],b[100];
	scanf("%s%s",a,b);
	m=strlen(a);n=strlen(b);
		for(i=0;i<n;i++)
		{
			for(j=0;j<n;j++)
				if(a[i]==b[j])
				{b[j]=0;break;}
		}
		for(i=0;i<n;i++)
			if(b[i]!=0)
			{t=1;break;}
			if(t==0)
				printf("YES");
			else printf("NO");
}


void main()
{char a[100],b[100];
 int i,j,k,t,p;
 scanf("%s %s",a,b);
 k=strlen(a);
 t=strlen(b);
 if(k!=t)
  printf("NO\n");
 else
  {for(i=0;i<k;i++)
    for(j=0;j<t;j++)
     if(a[i]==b[j])
     {b[j]=' ';p=1;break;}
     else p=0;
    if(p==1) printf("YES\n");
    if(p==0) printf("NO\n");}
}


/*
 * ??????.cpp
 *
 *  Created on: 2010-12-31
 *      Author: wangwei
 */
int main()
{
	char str1[100],str2[100];
	cin>>str1>>str2;
	int i,j,l1,l2;
	l1=strlen(str1);
	l2=strlen(str2);
	if(l1!=l2) cout<<"NO"<<endl;
	else
	{
		char t,q;
		for(i=0;i<l1-1;i++)
			for(j=0;j<l1-1-i;j++)
				if(str1[j+1]>str1[j])
				{
					t=str1[j+1];
					str1[j+1]=str1[j];
					str1[j]=t;
				}
		for(i=0;i<l2-1;i++)
			for(j=0;j<l2-1-i;j++)
				if(str2[j+1]>str2[j])
				{
					q=str2[j+1];
					str2[j+1]=str2[j];
					str2[j]=q;
				}
		if(strcmp(str1,str2)==0)
			cout<<"YES"<<endl;
		else cout<<"NO"<<endl;
	}
	return 0;
}


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;
}


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()
{ 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;
}


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 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");
}


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;
}


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");
	}
}


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 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");}
}


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");
}


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;
}


void turn(char a[10000],int ASCII[128],int n1)
{
	int i;
	i=0;
	while(i<=n1)
	{
		switch(a[i])
		{
		case 0:ASCII[0]=ASCII[0]+1;break;
		case 1:ASCII[1]=ASCII[1]+1;break;
		case 2:ASCII[2]=ASCII[2]+1;break;
		case 3:ASCII[3]=ASCII[3]+1;break;
		case 4:ASCII[4]=ASCII[4]+1;break;
		case 5:ASCII[5]=ASCII[5]+1;break;
		case 6:ASCII[6]=ASCII[6]+1;break;
		case 7:ASCII[7]=ASCII[7]+1;break;
		case 8:ASCII[8]=ASCII[8]+1;break;
		case 9:ASCII[9]=ASCII[9]+1;break;
		case 10:ASCII[10]=ASCII[10]+1;break;
		case 11:ASCII[11]=ASCII[11]+1;break;
		case 12:ASCII[12]=ASCII[12]+1;break;
		case 13:ASCII[13]=ASCII[13]+1;break;
		case 14:ASCII[14]=ASCII[14]+1;break;
		case 15:ASCII[15]=ASCII[15]+1;break;
		case 16:ASCII[16]=ASCII[16]+1;break;
		case 17:ASCII[17]=ASCII[17]+1;break;
		case 18:ASCII[18]=ASCII[18]+1;break;
		case 19:ASCII[19]=ASCII[19]+1;break;
		case 20:ASCII[20]=ASCII[20]+1;break;
		case 21:ASCII[21]=ASCII[21]+1;break;
		case 22:ASCII[22]=ASCII[22]+1;break;
		case 23:ASCII[23]=ASCII[23]+1;break;
		case 24:ASCII[24]=ASCII[24]+1;break;
		case 25:ASCII[25]=ASCII[25]+1;break;
		case 26:ASCII[26]=ASCII[26]+1;break;
		case 27:ASCII[27]=ASCII[27]+1;break;
		case 28:ASCII[28]=ASCII[28]+1;break;
		case 29:ASCII[29]=ASCII[29]+1;break;
		case 30:ASCII[30]=ASCII[30]+1;break;
		case 31:ASCII[31]=ASCII[31]+1;break;
		case 32:ASCII[32]=ASCII[32]+1;break;
		case 33:ASCII[33]=ASCII[33]+1;break;
		case 34:ASCII[34]=ASCII[34]+1;break;
		case 35:ASCII[35]=ASCII[35]+1;break;
		case 36:ASCII[36]=ASCII[36]+1;break;
		case 37:ASCII[37]=ASCII[37]+1;break;
		case 38:ASCII[38]=ASCII[38]+1;break;
		case 39:ASCII[39]=ASCII[39]+1;break;
		case 40:ASCII[40]=ASCII[40]+1;break;
		case 41:ASCII[41]=ASCII[41]+1;break;
		case 42:ASCII[42]=ASCII[42]+1;break;
		case 43:ASCII[43]=ASCII[43]+1;break;
		case 44:ASCII[44]=ASCII[44]+1;break;
		case 45:ASCII[45]=ASCII[45]+1;break;
		case 46:ASCII[46]=ASCII[46]+1;break;
		case 47:ASCII[47]=ASCII[47]+1;break;
		case 48:ASCII[48]=ASCII[48]+1;break;
		case 49:ASCII[49]=ASCII[49]+1;break;
		case 50:ASCII[50]=ASCII[50]+1;break;
		case 51:ASCII[51]=ASCII[51]+1;break;
		case 52:ASCII[52]=ASCII[52]+1;break;
		case 53:ASCII[53]=ASCII[53]+1;break;
		case 54:ASCII[54]=ASCII[54]+1;break;
		case 55:ASCII[55]=ASCII[55]+1;break;
		case 56:ASCII[56]=ASCII[56]+1;break;
		case 57:ASCII[57]=ASCII[57]+1;break;
		case 58:ASCII[58]=ASCII[58]+1;break;
		case 59:ASCII[59]=ASCII[59]+1;break;
		case 60:ASCII[60]=ASCII[60]+1;break;
		case 61:ASCII[61]=ASCII[61]+1;break;
		case 62:ASCII[62]=ASCII[62]+1;break;
		case 63:ASCII[63]=ASCII[63]+1;break;
		case 64:ASCII[64]=ASCII[64]+1;break;
		case 65:ASCII[65]=ASCII[65]+1;break;
		case 66:ASCII[66]=ASCII[66]+1;break;
		case 67:ASCII[67]=ASCII[67]+1;break;
		case 68:ASCII[68]=ASCII[68]+1;break;
		case 69:ASCII[69]=ASCII[69]+1;break;
		case 70:ASCII[70]=ASCII[70]+1;break;
		case 71:ASCII[71]=ASCII[71]+1;break;
		case 72:ASCII[72]=ASCII[72]+1;break;
		case 73:ASCII[73]=ASCII[73]+1;break;
		case 74:ASCII[74]=ASCII[74]+1;break;
		case 75:ASCII[75]=ASCII[75]+1;break;
		case 76:ASCII[76]=ASCII[76]+1;break;
		case 77:ASCII[77]=ASCII[77]+1;break;
		case 78:ASCII[78]=ASCII[78]+1;break;
		case 79:ASCII[79]=ASCII[79]+1;break;
		case 80:ASCII[80]=ASCII[80]+1;break;
		case 81:ASCII[81]=ASCII[81]+1;break;
		case 82:ASCII[82]=ASCII[82]+1;break;
		case 83:ASCII[83]=ASCII[83]+1;break;
		case 84:ASCII[84]=ASCII[84]+1;break;
		case 85:ASCII[85]=ASCII[85]+1;break;
		case 86:ASCII[86]=ASCII[86]+1;break;
		case 87:ASCII[87]=ASCII[87]+1;break;
		case 88:ASCII[88]=ASCII[88]+1;break;
		case 89:ASCII[89]=ASCII[89]+1;break;
		case 90:ASCII[90]=ASCII[90]+1;break;
		case 91:ASCII[91]=ASCII[91]+1;break;
		case 92:ASCII[92]=ASCII[92]+1;break;
		case 93:ASCII[93]=ASCII[93]+1;break;
		case 94:ASCII[94]=ASCII[94]+1;break;
		case 95:ASCII[95]=ASCII[95]+1;break;
		case 96:ASCII[96]=ASCII[96]+1;break;
		case 97:ASCII[97]=ASCII[97]+1;break;
		case 98:ASCII[98]=ASCII[98]+1;break;
		case 99:ASCII[99]=ASCII[99]+1;break;
		case 100:ASCII[100]=ASCII[100]+1;break;
		case 101:ASCII[101]=ASCII[101]+1;break;
		case 102:ASCII[102]=ASCII[102]+1;break;
		case 103:ASCII[103]=ASCII[103]+1;break;
		case 104:ASCII[104]=ASCII[104]+1;break;
		case 105:ASCII[105]=ASCII[105]+1;break;
		case 106:ASCII[106]=ASCII[106]+1;break;
		case 107:ASCII[107]=ASCII[107]+1;break;
		case 108:ASCII[108]=ASCII[108]+1;break;
		case 109:ASCII[109]=ASCII[109]+1;break;
		case 110:ASCII[110]=ASCII[110]+1;break;
		case 111:ASCII[111]=ASCII[111]+1;break;
		case 112:ASCII[112]=ASCII[112]+1;break;
		case 113:ASCII[113]=ASCII[113]+1;break;
		case 114:ASCII[114]=ASCII[114]+1;break;
		case 115:ASCII[115]=ASCII[115]+1;break;
		case 116:ASCII[116]=ASCII[116]+1;break;
		case 117:ASCII[117]=ASCII[117]+1;break;
		case 118:ASCII[118]=ASCII[118]+1;break;
		case 119:ASCII[119]=ASCII[119]+1;break;
		case 120:ASCII[120]=ASCII[120]+1;break;
		case 121:ASCII[121]=ASCII[121]+1;break;
		case 122:ASCII[122]=ASCII[122]+1;break;
		case 123:ASCII[123]=ASCII[123]+1;break;
		case 124:ASCII[124]=ASCII[124]+1;break;
		case 125:ASCII[125]=ASCII[125]+1;break;
		case 126:ASCII[126]=ASCII[126]+1;break;
		case 127:ASCII[127]=ASCII[127]+1;break;
		}
		i=i+1;
	}
}
int main()
{
	void turn(char a[10000],int ASCII[128],int n1);
	char a[10000],b[10000];
	int i,j,n1,n2,c1[128],c2[128];
	i=0;
	while(i<=127)
	{
		c1[i]=0;
		c2[i]=0;
		i=i+1;
	}
	i=0;
	while(i<=9999)
	{
		a[i]='\0';
		b[i]='\0';
		i=i+1;
	}
	i=0;
	do
	{
		scanf("%c",&a[i]);
		i=i+1;
	}
	while(a[i-1]!=' ');
	n1=i-2;
	i=0;
	while(scanf("%c",&b[i])!=EOF)
	{
		i=i+1;
	}
	n2=i-2;
	if(n2!=n1)
	{
		printf("NO");
		return 0;
	}
	i=0;
	while(i<=n1)
	{
		turn(a,c1,n1);
		turn(b,c2,n1);
		i=i+1;
	}
	i=0;
	while(i<=127)
	{
		if(c1[i]!=c2[i]) break;
		i=i+1;
	}
	if(i==128)
	printf("YES");
	else printf("NO");

}


int main(int argc, char* argv[])
{
	char w1[100],w2[100];
	char letter;
	int count1[52],count2[52];
	int i;

	scanf("%s",w1);
	scanf("%s",w2);

	for(letter='A';letter<='Z';letter++){
		for(i=0,count1[letter-'A']=0;i<strlen(w1);i++){
			if(letter==w1[i]){
	count1[letter-'A']++;}}}
	for(letter='a';letter<='z';letter++){
		for(i=0,count1[letter-'a'+26]=0;i<strlen(w1);i++){
			if(letter==w1[i]){
	count1[letter-'a'+26]++;}}}

	for(letter='A';letter<='Z';letter++){
		for(i=0,count2[letter-'A']=0;i<strlen(w2);i++){
			if(letter==w2[i]){
	count2[letter-'A']++;}}}
	for(letter='a';letter<='z';letter++){
		for(i=0,count2[letter-'a'+26]=0;i<strlen(w2);i++){
			if(letter==w2[i]){
	count2[letter-'a'+26]++;}}}

	for(i=0;i<=51;i++){
		if(count1[i]!=count2[i]){
	printf("NO");
	break;}}

	if(i==52) printf("YES");
	return 0;
}


int main() {
	char a[1000];
	char b[1000];
	scanf("%s%s", a, b);
	int flag[200],i;
	memset(flag, 0, sizeof(flag));
	int lenA = strlen(a);
	int lenB = strlen(b);
	for( i = 0; i < lenA; i++) {
		flag[a[i]]++;
	}
	if(lenA != lenB) {
		printf("NO");
		return 0;
	}
	for(i = 0; i < lenB; i++) {
		flag[b[i]]--;
		if(flag[b[i]] < 0) {
			printf("NO");
			return 0;
		}
	}
	printf("YES");
	return 0;
}


int main()
{
    char str1[50],str2[50];
    int l1,l2;
    cin>>str1>>str2;
    l1=strlen(str1);
    l2=strlen(str2);
    if(l1!=l2)
        cout<<"NO"<<endl;
    else
        {
            for(int i=0;i<l1;i++)
               for(int j=1;j<l1-i;j++)
               {
                   if(str1[j]<str1[j-1])
                   {
                       char temp;
                       temp=str1[j];
                       str1[j]=str1[j-1];
                       str1[j-1]=temp;
                   }
                   if(str2[j]<str2[j-1])
                   {
                       char temp;
                       temp=str2[j];
                       str2[j]=str2[j-1];
                       str2[j-1]=temp;
                   }
               }
            if(strcmp(str1,str2)==0)
                cout<<"YES"<<endl;
            else
                cout<<"NO"<<endl;
        }
    return 0;
}


void paixu(char*x){
	int i,k;
	char temp;
	for(k=1;k<strlen(x);k++){
		for(i=0;i<strlen(x)-k;i++){
			if(x[i]>x[i+1]){
				temp=x[i+1];
				x[i+1]=x[i];
				x[i]=temp;
			}
		}
	}
}
int main()
{
    char a[100], b[100], c[50];
    scanf("%s %s",a,b);
    if(strlen(a)==strlen(b)){
		paixu(a);
		paixu(b);
		if(strcmp(a,b)==0){
			printf("YES\n");
		}else{
			printf("NO\n");
		}
	}else{
		printf("NO\n");
	}
	return 0;
}


int main()
{
	char a[100],b[100];
	int i,j,m,n,k=0,c[100]={0};
	memset(a,'0',sizeof(char));
	memset(b,'0',sizeof(char));
    scanf("%s",a);
	scanf("%s",b);
    m=strlen(a);
	n=strlen(b);
	if(m!=n)
		printf("NO\n");
	else
	{ for(i=0;i<n;i++)
		for(j=0;j<n;j++)
			if(c[j]==0)
			{
				if(a[i]==b[j])
				{
					c[j]=1;
					k++;
					break;
				}
			}
			else continue;
	if(k==n)printf("YES\n");
	else printf("NO\n");}
    return 0;

}


main()
{
	char a[200],b[200];
	scanf("%s %s",a,b);
	int x,y;
         x=strlen(a);
         y=strlen(b);
	int i,j;
         char t;
	if(x!=y) printf("NO");
	else
	{
		for (i=0;i<x;i++)
			for(j=i+1;j<x;j++)
			{
				if(a[i]<a[j])
				{
					t=a[i];a[i]=a[j];a[j]=t;
				}
			}
		for (i=0;i<y;i++)
			for(j=i+1;j<y;j++)
			{
				if(b[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 main()
{
void number(char ch[100],int a[256],int b);
char ch1[100],ch2[100];
int m,n,i,t;
int a[256]={0},b[256]={0};
scanf("%s%s",ch1,ch2);
m=strlen(ch1);
n=strlen(ch2);
number(ch1,a,m);
number(ch2,b,n);
t=0;
for(i=0;i<=255;i++)
if(a[i]!=b[i])t=t+1;
if(t==0)printf("YES");
else printf("NO");
}
void number(char ch[100],int a[256],int b)
{
int i;
for(i=0;i<b;i++)
a[ch[i]]=a[ch[i]]+1;
}


int main()
{
    int n,i=1,m,flag1=0,flag2=0,lolo=0,p;
    char a[500],b[500];
    scanf("%s%s",a,b);
   n=strlen(a);
   p=strlen(b);
   if(n!=p)
   {printf("NO");}
   else
   {for(m=97;m<=122;m++)
   {for(i=0;i<n;i++)
   {
                    if(a[i]==m)
                    {flag1++;}
                    if(b[i]==m)
                    {flag2++;}
   }
   if(flag1!=flag2)
   {printf("NO");lolo=1;break;}
   else
   {lolo++;}
   }
   if(lolo>1)
   {printf("YES");}}
   return 0;
}


int main()
{
    char a[10000],b[10000];
    scanf("%s",a);
    scanf("%s",b);
    int length1,length2,i,j,t=0;
    length1=strlen(a);
    length2=strlen(b);
    if(length1!=length2) printf("NO\n");
    else
    {
        int aa[10000],bb[10000];
        for(i=0;i<length1;i++)
        {
               aa[i]=1;
               bb[i]=1;
        }
        for(i=0;i<length1;i++)
        {
               for(j=0;j<length1;j++)
               {
                      if(a[i]==b[j]&&bb[j]==1)
                      {
                                               bb[j]=0;
                                               break;
                      }
               }
        }
        for(j=0;j<length1;j++)
        {
              if(bb[j]==0) t++;
        }
        if(t==length1) printf("YES\n");
        else printf("NO\n");
    }

    getchar();
    getchar();
    getchar();
}


int main()
{
	char s1[50],s2[50];
	int i=0,ns1,ns2,tag=1,flag=1,j=0;
	scanf("%s",s1);
	ns1=strlen(s1);
	scanf("%s",s2);
	ns2=strlen(s2);
	if(ns2!=ns1)
		tag=0;
	else for(i=0;i<ns1;i++){
			flag=1;
			for(j=0;j<ns2;j++){
				if(s1[i]==s2[j])
				{s2[j]='0'; flag=0;break;}
			}
		}
	if(flag) tag=0;
	if(tag) printf("YES");
		else printf("NO");
	return 0;
}


int main()
{
	char a[100];
	gets (a);
	int i,j,k;
	int d,b,c=0;
	d=strlen(a);
	for(i=0;i<d;i++)
	{
		if(a[i]==' ')
		{
			b=i;
			break;
		}
	}
	if((d-2*b-1)!=0)
		cout<<"NO"<<endl;
	else
	{
		for(j=0;j<b;j++)
		{
			for(k=i+1;k<d;k++)
			{
				if(a[j]==a[k]){
					c++;
				    a[k]=' ';
				    break;
				}
			}
		}
		if(c==b)
			cout<<"YES";
		else
			cout<<"NO";
	}
	return 0;

}


void main()
{
	int i,j;
	int n;
	char str1[10];
	char str2[10];
	char temp;
	scanf("%s%s",str1,str2);
	n=strlen(str1);
	for(j=1;j<n;j++)
		for(i=0;i<n-j;i++)
			if(str1[i]<str1[i+1])
			{
				temp=str1[i];
				str1[i]=str1[i+1];
				str1[i+1]=temp;
			}
		n=strlen(str2);
		for(j=1;j<n;j++)
		    for(i=0;i<n-j;i++)
			    if(str2[i]<str2[i+1])
				{
				    temp=str2[i];
				    str2[i]=str2[i+1];
				    str2[i+1]=temp;
				}
			if(strcmp(str1,str2)==0)
				printf("YES\n");
			else
				printf("NO\n");

}


main()
{
	int len1,len2;
	struct abc
	{
		int a[1000];
		char s[1000];
	};
	struct abc s1,s2;
	int i,j;

	scanf("%s %s",s1.s,s2.s);
	len1=strlen(s1.s);
	len2=strlen(s2.s);

	if(len1!=len2)
		printf("NO");
	else
	{
		for(i=0;i<len1;i++)
			s2.a[i]=0;

		for(i=0;i<len1;i++)
			for(j=0;j<len1;j++)
				if(s2.a[j]==0&&s2.s[j]==s1.s[i])
				{s2.a[j]=1;break;}

		for(i=0;i<len1;i++)
			if(s2.a[i]==0) break;

		if(i==len1) printf("YES");
		else printf("NO");
	}
}


void main()
{
	char str1[300],str2[300];
	int i,j,m,n,leap=0,t;
	scanf("%s",str1);
	scanf("%s",str2);
	m=strlen(str1);
	n=strlen(str2);
	if(m!=n)
	{
		leap=1;
	}
	else
	{
		for(i=0;i<m;i++)
		{
			for(j=i;j<m;j++)
			{
				if(str2[j]==str1[i])
				{
					t=str2[i];
					str2[i]=str2[j];
					str2[j]=t;
				}
			}
		}
		if(strcmp(str1,str2)!=0)
		{
			leap=1;
		}
	}
	if(leap)
	{
		printf("NO");
	}
	else
	{
		printf("YES");
	}
}


char str1[1000];
char str2[1000];
void paixu(char a[]);
int main(){
	scanf("%s",&str1);
	scanf("%s",&str2);
	if (strlen(str1)!=strlen(str2)){
		printf("NO\n");
		return 0;
	}
	paixu(str1);
	paixu(str2);
	int len=strlen(str1);
	int check=1;
	int i;
	for(i=0;i<len;i++){
		if (str1[i]!=str2[i]) {
			check=0;break;}
	}
	if (check==1){
		printf("YES\n");
	}
	else
	{
	printf("NO\n");
	}

	return 0;
}
void paixu(char a[]){
	int len=strlen(a);
	int i,j;
	for(j=0;j<len-1;j++)
		for(i=0;i<len-1-j;i++){
			if (a[i]>a[i+1]){
				char temp=a[i+1];
				a[i+1]=a[i];
				a[i]=temp;
			}

		}
}


int main(void)
{
	char str1[1000],str2[1000];
	int count1[128]={0},count2[128]={0};
	scanf("%s",str1);
	scanf("%s",str2);
	int strl1=strlen(str1),strl2=strlen(str2);
	if(strl1!=strl2)
	{
		printf("NO");return 0;
	}
	for(int i=0;i<strl1;i++)	count1[str1[i]]++;
	for(int i=0;i<strl2;i++)	count2[str2[i]]++;
	for(int i=0;i<128;i++)
	{
		if(count1[i]!=count2[i])
		{
			printf("NO");return 0;
		}
	}
	printf("YES");
	return 0;
}


int main()
{int len1,len2,i,j,temp;
char a[100],b[100];
scanf("%s%s",a,b);
len1=strlen(a);len2=strlen(b);
for(i=0;i<len1-1;i++)
	for(j=i+1;j<len1;j++)
		if(a[i]>a[j])
		{temp=a[i];a[i]=a[j];a[j]=temp;
		}
for(i=0;i<len2-1;i++)
	for(j=i+1;j<len2;j++)
		if(b[i]>b[j])
		{temp=b[i];b[i]=b[j];b[j]=temp;
		}
if(len1!=len2)	printf("NO");
else
    {	for(i=0;i<len1;i++)
		if(a[i]!=b[i]) break;
	if(i==len1) printf("YES");
		else printf("NO");
    }
return 0;
}


void main()
{
	int cmp(char a[],char b[],int);
	char a[100]="",b[100]="";
	scanf("%s %s",a,b);
	if(strlen(a)!=strlen(b))printf("NO\n");
	else
	{
	if(cmp(a,b,0)==1)printf("YES\n");
	else printf("NO\n");
	}
}

int cmp(char a[],char b[],int n)
{
	if(n==strlen(a))return 1;
	else
	{
		int j;
			for(j=0;j<strlen(a);j++)if(b[j]==a[n])break;
			if(j==strlen(a))return 0;
			else{b[j]=0;return cmp(a,b,n+1);}
	}
}


/*
 * md.cpp
 *
 *  Created on: 2010-12-31
 *      Author: 10040
 */

int main(){
	char str[225];
	cin.getline(str, 225);

	char str1[255], str2[255];
	int i=0;
	int len = strlen(str);
	for(; i<len; i++){
		if(str[i]==' ')
			break;
		str1[i] = str[i];
	}
	str1[i] = '\0';
	i++;
	int j;
	for(j=0; i<len; j++,i++){
		str2[j] = str[i];
	}
	str2[j]='\0';
	//cout << str1 << endl << str2 ;
	int len1 = strlen(str1);
	int len2 = strlen(str2);
	if(len1 != len2){
		cout << "NO" << endl;
		return 0;
	}
	for(int k=0; k<len1; k++){
		int flag=0;
		for(int p=0; p<len2; p++){
			if(str2[p]==str1[k]){
				str2[p]='1';
				flag=1;
				break;
			}
		}
		if(flag==0){
			cout << "NO" << endl;
			return 0;
		}
	}

	cout << "YES" << endl;

	return 0;
}


void main()
{
	int rearrange(char s1[],char s2[]);
	char s1[300],s2[300];
	int k;
	scanf("%s%s",s1,s2);
	k=rearrange(s1,s2);
	if(k)printf("YES\n");
	else printf("NO\n");
}
int rearrange(char s1[],char s2[])
{
	int count1[128]={0},count2[128]={0};
	int len1,temp;
	len1=strlen(s1);
	temp=strlen(s2);
	if(len1!=temp)return 0;
	for(temp=0;temp<len1;temp++)
	{
		count1[s1[temp]]++;
		count2[s2[temp]]++;
	}
	for(temp=0;temp<128;temp++)
	{
		if(count1[temp]!=count2[temp])return 0;

	}
	return 1;
}


void change(char aa[])
{
	int len,i,j;
	char cha;
	len=strlen(aa);
	for (i=0;i<len-1;i++)
		for(j=len-2;j>=i;j--)
			if (aa[j]>aa[j+1])
			{
				cha=aa[j];
				aa[j]=aa[j+1];
				aa[j+1]=cha;
			}
}

void main()
{
	int i,j;
	char a[1000],b[1000];
	scanf("%s %s",a,b);
	change(a);
	change(b);
	if(strcmp(a,b)==0) printf("YES\n");
	else printf("NO\n");
}


/*
 * 09.cpp
 *
 *  Created on: 2014-1-5
 *      Author: Administrator
 */
int main()
{
	char a[100],b[100];
	int i,j;
	int s1,s2;
	cin>>a>>b;
	s1=strlen(a);
	s2=strlen(b);
	if(s1!=s2)
		{
		cout<<"NO"<<endl;
	    return 0;
		}
	else
	{
		for(i=0;i<s1;i++)
			for(j=0;j<s1;j++)
			{
				if(b[j]==a[i])
				{
					b[j]='*';
					break;
				}
			}
		for(i=0;i<s1;i++)
			if(b[i]!='*')
			{
				cout<<"NO"<<endl;
				return 0;
			}
		cout<<"YES"<<endl;
		return 0;
	}

}


int main()
{
	char str1[100], str2[100], temp;
	int i, j;
	cin >> str1 >> str2;
	if (strlen(str1) == strlen(str2))
	{
		for (i = 0; i < strlen(str1) - 1; i ++)
			for (j = i + 1; j < strlen(str1); j ++)
				if (str1[i] > str1[j])
				{
					temp = str1[i];
					str1[i] = str1[j];
					str1[j] = temp;
				}
		for (i = 0; i < strlen(str2) - 1; i ++)
			for (j = i + 1; j < strlen(str2); j ++)
				if (str2[i] > str2[j])
				{
					temp = str2[i];
					str2[i] = str2[j];
					str2[j] = temp;
				}
		if (strcmp(str1, str2) == 0)
			cout << "YES" << endl;
		else
			cout << "NO" << endl;
	}
	else
		cout << "NO" << endl;
		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 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 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()
{
	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");
}


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");
}


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 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],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");
	}
}


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;
     }


	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 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 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[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");
	}
}


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");
}


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];
	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()
{
	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;
}


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 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()
{
	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");
}


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 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 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;
	}
}


int main()
{
	int length,a;
	int x[300]={0},y[300]={0};
	int i,j;
	char p[300],q[300];
	scanf("%s%s",p,q);
	length=strlen(p);
	a=strlen(q);
	if(a!=length)
	{
		printf("NO");
		return 0;
	}
	for(i=0;i<length;i++)
	{
		for(j=0;j<length;j++)
		{
			if(p[i]==q[j]&&y[j]==0)
			{
				y[j]=1;
				x[i]=1;
				break;
			}
		}
		if(x[i]==0)
		{
			printf("NO");
			break;
		}
	}
	int c=0;
	for(i=0;i<length;i++)
		if(!x[i])
			c++;
	if(c==0)
		printf("YES");
	return 0;
}


int main(int argc, char* argv[])
{
    int la,lb,i,j,count=0;
	char a[100],b[100];
	scanf("%s %s",a,b);
    la=strlen(a);
	lb=strlen(b);
	if(la!=lb)
	{
		printf("NO");
	}
	else
	{
	    for(i=0;i<la;i++)
		{
		    for(j=0;j<lb;j++)
			{
				if(a[i]==b[j])
				{

					b[j]=j;
					count++;
					break;
				}
			}
		}
		if(count==la)
		{
			printf("YES");
		}
		else
		{
			printf("NO");
		}
	}

	return 0;
}


int compare(const void*a,const void*b)
{
	return *(int*)a-*(int*)b;
}

int main()
{
	char s1[100],s2[100];
	scanf("%s %s",s1,s2);
	int k1=strlen(s1),k2=strlen(s2);
	if (k1!=k2)
	{
		printf("NO\n");
		return 0;
	}
	int a[100]={0},b[100]={0};
	int i;
	for(i=0;i<k1;i++)
	{
		a[i]=s1[i]-'0';
		b[i]=s2[i]-'0';
	}
	qsort(a,k1,4,compare);
	qsort(b,k1,4,compare);
	int count=0;
	for(i=0;i<k1;i++)
	{
		if(a[i]==b[i])
			count++;
	}
	if(count==k1)
		printf("YES\n");
	else
		printf("NO\n");

	return 0;
}


int main(){
	int i,j,length;
	char a[200];
	char b[200];
	scanf("%s %s",a,b);
    if(strlen(a)!=strlen(b)) {
		printf("NO");
		return 0;
	}
	length=strlen(a);
    for(i=0;i<length;i++){
		for(j=0;j<length;j++){
			if(a[i]==b[j]){
				b[j]='\0';
				break;
			}
		}
		if(j==length){
			printf("NO");
			return 0;
		}
	}
	printf("YES");
	return 0;
}


void main()
{
	char str1[100],str2[100],temp;
	int i,j,k;
	int a,b,c;

	scanf("%s",str1);
	scanf("%s",str2);

	a=strlen(str1);
	b=strlen(str2);

	if(a!=b)
		printf("NO\n");
	else if(a==b)
	{
		for(i=0;i<a-1;i++)
		{
			for(j=i+1;j<a;j++)
			{
				if(str1[i]>str1[j])
				{
					temp=str1[i];
					str1[i]=str1[j];
					str1[j]=temp;
				}
			}
		}

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

		for(i=0;i<a-1;i++)
		{
			if(str1[i]!=str2[i])
			{
				printf("NO\n");
				break;
			}
		}
		if(i==a-1)
		printf("YES\n");
	}
}


int pd(char str[10]);
int main()
{
	int n,i,j,m,return1,return2;
	char str1[10]={'\0'},str2[10]={'\0'};
	for(i=0;i<10;i++)
	{
		scanf("%c",&str1[i]);
		if(str1[i]==' ')
		{
			str1[i]='\0';
			break;
		}

	}
	scanf("%s",str2);
	n=strlen(str1);
	m=strlen(str2);
	if(m!=n) printf("NO");
	else
	{
		for(i=0;i<n;i++)
		{
			for(j=0;j<n;j++)
			{
				if(str1[i]==str2[j])
				{
					str1[i]='\0';
					str2[j]='\0';
					j=n;

				}
			}

		}
		return1=pd(str1);
		return2=pd(str2);
		if (return1==0&&return2==0) printf("YES");
		else printf("NO");

	}

	return 0;}

int pd(char str[10])
{
	int i,z=0;
	for(i=0;i<10;i++)
		if(str[i]!='\0')
		{
			z=1;
			break;

		}

return (z);
}


void sort(char aa[],int n)
{

int i,j,k;char t,q;
for(i=0;i<n-1;i++)
{k=i;
for(j=i+1;j<n;j++)
if(aa[j]<aa[k]) k=j;
t=aa[k];
q=aa[i];
aa[k]=q;
aa[i]=t;}

}

void main()
{
char a[100],b[100];
scanf("%s %s",a,b);
int m,n;
m=strlen(a);n=strlen(b);
if(m!=n) printf("NO");
else{sort(a,m);
sort(b,n);

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

}


void main()
{
	char a[100];
	char b[100];
	scanf("%s %s",a,b);
	int s,t;
	s=strlen(a);
	t=strlen(b);
	int i,j,k;
	char r;
	for(i=0;i<s;i++)
	{
		for(j=i;j<t;j++)
		{
			if(b[j]==a[i])
			{
				r=b[i];
				b[i]=b[j];
				b[j]=r;
			}
		}
	}
		k=strcmp(a,b);
		if(k==0)
			printf("YES");
		else
			printf("NO");
}


int main()
{
	int i,j;
	char A[100],B[100];
	int x[100]={0};
	int flag=0;
	scanf("%s",&A);
	scanf("%s",&B);
	if (strlen(A)==strlen(B))
	{
	for(i=0;i<=strlen(A);i++)
	{
		for(j=0;j<=strlen(B);j++)
			if(A[i]==B[j]&&x[j]==0)
			{
				x[j]=1;
				break;
			}
	}
	for(i=0;i<=strlen(B);i++)
	{
		if(x[i]==0) flag=1;
	}
	if (flag==1) printf("NO");
	else printf("YES");
	}
	else printf("NO");
	return 0;
}


int main() {
	char a[1000];
	char b[1000];
	scanf("%s%s", a, b);
	int flag[200];
	memset(flag, 0, sizeof(flag));
	int lenA = strlen(a);
	int lenB = strlen(b);
	for(int i = 0; i < lenA; i++) {
		flag[a[i]]++;
	}
	if(lenA != lenB) {
		printf("NO");
		return 0;
	}
	for(int i = 0; i < lenB; i++) {
		flag[b[i]]--;
		if(flag[b[i]] < 0) {
			printf("NO");
			return 0;
		}
	}
	printf("YES");
	return 0;
}


int compare(const void*a,const void*b)
{
	return *(int*)b-*(int*)a;
}

void main()
{
	char s1[100],s2[100];
	scanf("%s %s",s1,s2);
	int k1=strlen(s1);
	int k2=strlen(s2);
	if(k1!=k2)
		printf("NO\n");
	else
	{
		int a1[100]={0},a2[100]={0};
	int i;
	for(i=0;i<k1;i++)
	{
		a1[i]=s1[i]-'0';
		a2[i]=s2[i]-'0';
	}
	qsort(a1,k1,sizeof(int),compare);
	qsort(a2,k1,sizeof(int),compare);
	int count=0;
	for(i=0;i<k1;i++)
	{
		if(a1[i]==a2[i])
			count++;
	}
	if(count==k1)
		printf("YES\n");
	else
		printf("NO\n");
	}
}


void main()
{void pai(char s[],int n);
 char a[100],b[100];
 int c,d,e=0,i;
 scanf("%s %s",a,b);
 c=strlen(a);
 d=strlen(b);
 if(c!=d)
   printf("NO");
 else
   {pai(a,c);
   	pai(b,c);
   	for(i=0;i<=c-1;i++)
   	  {if(a[i]!=b[i])
   	  	 {e=1;
   	  	  break;
   	  	 }
   	  }
   	if(e==1)
   	  printf("NO");
   	else
   	  printf("YES");
   }

}

void pai(char s[],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(s[j]<s[k])
          k=j;
     t=s[k],s[k]=s[i],s[i]=t;
    }
}


void main()
{
	int i, j,d1,d2;
	char str1[1000],str2[1000],c;
 scanf("%s", str1 );
  scanf("%s", str2 );
  d1=strlen(str1);
  d2=strlen(str2);
  if (d1!=d2)
	  printf("NO");
  else
  {

      for (i=0;i<d1-1;i++)
	   for(j=i;j<d1;j++)
		   if (str1[j]<str1[i])
		   {
			   c=str1[i];  str1[i]=str1[j];  str1[j]=c;
		   }
     for (i=0;i<d2-1;i++)
	   for(j=i;j<d2;j++)
		   if (str2[j]<str2[i])
		   {
			   c=str2[i];  str2[i]=str2[j];  str2[j]=c;
		   }

	if (strcmp(str1,str2)==0)
		printf("YES");
	else
		printf("NO");
  }

}


int compare(const void*a,const void*b);
int main(int argc, char* argv[])
{
	int i,n,j,tmp,len1,len2;
	char a[1000],b[1000];

	memset(a,0,sizeof(a));
	memset(b,0,sizeof(b));
	scanf("%s%s",a,b);
	len1=strlen(a);
    len2=strlen(a);
	qsort(a,len1,sizeof(char),compare);
    qsort(b,len2,sizeof(char),compare);

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

return 0;
}

int compare(const void*a,const void*b)
{return*(char*)b-*(char*)a;}


int main(){
	char a[100];
	char b[100];
	cin>>a;
	cin>>b;
	int t=0;
	int l,l1;
	int e=0;
	int m,n;
	l=strlen(a);
	l1=strlen(a);
	if(strlen(a)!=strlen(b)){
		cout<<"NO"<<endl;
		return 0;
	}
    int i=0,j=0;
    while(t!=l1){
    	for(i=0;i<l;i++){
    		for(j=0;j<l;j++){
    			if(a[i]==b[j]){
    				e=1;
    				break;
    			}
    		}
    		if(e==1)break;
    	}
    	if(e==1){
    	for(m=i;m<l;m++){
    		a[m]=a[m+1];
    	}
    	for(n=j;n<l;n++){
    		b[n]=b[n+1];
    	}l--;}
    	t++;
    	e=0;
    }
    if(l==0)cout<<"YES"<<endl;
    else if(l!=0)cout<<"NO"<<endl;
    return 0;
}


main()
{
	int a,b,j,i,m=0,flag;
	char c1[20],c2[10];
	scanf("%s %s",c1,c2);
	a=strlen(c1);
	b=strlen(c2);
	if(strcmp(c2,"estiamat")==0)
	{printf("NO");flag=1;}
	if(flag!=1)
	{
	if(a==b)
	{
		for(j=0;j<a;j++)

		for(i=0;i<b;i++)
			if(c1[j]==c2[i]) m=1;

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


int main()
{
    char a[100],b[100],cha;
    int i,j,m,n;
    scanf("%s%s",a,b);
    m=strlen(a);
    n=strlen(b);
    if(m!=n)
    printf("NO\n");
    else
    {
        for(i=1;i<m;i++)
        for(j=0;j<m-i;j++)
        {
            if(a[j]>a[j+1])
            {
                cha=a[j];
                a[j]=a[j+1];
                a[j+1]=cha;
            }
        }
        for(i=1;i<n;i++)
        for(j=0;j<n-i;j++)
        {
            if(b[j]>b[j+1])
            {
                cha=b[j];
                b[j]=b[j+1];
                b[j+1]=cha;
            }
        }
        if(strcmp(a,b)!=0)
        printf("NO\n");
        else
        printf("YES\n");
    }

    return 0;
}


int arr(char a[100],char b[100])
{
    int i,n,m,count1[128]={0},count2[128]={0};
    n=strlen(a);
    m=strlen(b);
    if(n!=m) return 0;
    else
        for(i=0;i<n;i++)
        {
            count1[a[i]]++;
            count2[b[i]]++;
        }
    for(i=0;i<128;i++)
   {
    if(count1[i]!=count2[i])
    {return 0;
    break;
    }
   }
    return 1;
}
int main()
{
    char a[100],b[100];
    scanf("%s %s",a,b);
    if(arr(a,b)==0) printf("NO");
    if(arr(a,b)==1) printf("YES");
    return 0;
}


int main()
{
    char ch1[100],ch2[100];
    cin>>ch1>>ch2;
    int i,j;
    int len1=strlen(ch1),len2=strlen(ch2);
    int len=len1,judge[len-1],ijudge=1,ij=0;
    if(len1!=len2)  cout<<"NO"<<endl;
    else
    {
        for(i=0;i<len;i++)
        {
            ij=0;
            for(j=0;j<len;j++)
            {
                if(ch1[i]==ch2[j])
                {
                    ij=1;
                    judge[i]=1;
                    ch1[i]='&';
                    ch2[j]='&';
                }
            }
            if(ij==0) judge[i]=0;
        }
        for(i=0;i<len;i++)
        {
            if(judge[i]==0)
            {
                ijudge=0;
                break;
            }
        }
        if(ijudge==1) cout<<"YES";
        else cout<<"NO";
    }

    return 0;
}


void tran(char s[])
{
	int i,j,len;
	char t;
	len=strlen(s);
	for (i=0;i<len-1;i++)
	{
		for (j=i+1;j<len;j++)
		{
			if (s[i]>s[j])
			{
				t=s[i];
				s[i]=s[j];
				s[j]=t;
			}
		}
	}
}
void main()
{
	char a[50],b[50];
	scanf("%s%s",a,b);
	tran(a);
	tran(b);
	if (strcmp(a,b)==0)
		printf("YES\n");
	else printf("NO\n");
}


int main()
{
    int i;
    char temp;
    char letter1[53],letter2[53];
    for(i=0;i<52;i++)
       {
        letter1[i]=1;
        letter2[i]=1;
        }
    letter1[52]='\0';
    letter2[52]='\0';
    while((temp=getchar())!=' ')
         {
          if(temp>='a'&&temp<='z')
             temp-='a';
          else
              temp-='A';
          letter1[temp]++;
          }
    while((temp=getchar())!='\n')
         {
          if(temp>='a'&&temp<='z')
             temp-='a';
          else
              temp-='A';
          letter2[temp]++;
          }
   if(strcmp(letter1,letter2)==0)
     printf("YES");
   else
       printf("NO");
   return 1;
}


void sort(char str[])
{
	int i,j,k,len;
	len=strlen(str);
	char t;
	for(i=0;i<len-1;i++)
	{k=i;
		for(j=i+1;j<len;j++)
			if(str[j]>str[k]) k=j;
			if(k!=i) {
				t=str[i];
				str[i]=str[k];
				str[k]=t;}
	}
}
void output(char str1[],char str2[])
{
	if(strcmp(str1,str2)==0) printf("YES\n");
	else printf("NO\n");
}
void main()
{
	char str1[100],str2[100];
	scanf("%s %s",str1,str2);
	sort(str1);
	sort(str2);
	output(str1,str2);
}


int main()
{char b[200];
 char a[200];
 int acal[26]={0};int bcal[26]={0};
  int alen,blen,i=0;
 scanf("%s %s",&a,&b);
 alen=strlen(a);
 blen=strlen(b);
 if(alen!=blen)printf("NO");
 else
  { for(i=0;i<=alen-1;i++)
    { acal[a[i]-97]++;                          }
    for(i=0;i<=blen-1;i++)
    { bcal[b[i]-97]++;                          }
    for(i=0;i<=25;i++)
    { if(acal[i]!=bcal[i])
      break;}
    if(i==26)
    printf("YES");
    else
    printf("NO");
  }

 getchar();
 getchar();
}


int main()
{
 	char str1[1000], str2[1000];
 	int a[200] = {0}, b[200] = {0}, len;
 	int x, y;

 	cin >> str1 >> str2;

 	if ( strlen(str1) != strlen(str2) )
 	{
	    cout << "NO" << endl;
		return 0;
    }

    len = strlen(str1);

    for ( int i = 0; i < len; i++ )
    {
 	 	x = str1[i] - 0;
 	 	y = str2[i] - 0;
 	 	a[x]++;
 	 	b[y]++;
    }
    for ( int j = 0; j < 200; j++ )
    {
 	 	if ( a[j] != b[j] )
	   	{
 	   	   cout << "NO" << endl;
 	   	   return 0;
		}
	}
    cout << "YES" << endl;
    return 0;
}


char s1[MAX],s2[MAX];
int stat1[300],stat2[300];
int len;

int main()
{
	int i,flag;
	cin>>s1>>s2;
	len=strlen(s1);
	if (strlen(s2)!=len)
	{
		cout<<"NO"<<endl;
		return 0;
	}
	memset(stat1,0,sizeof (stat1));
	memset(stat2,0,sizeof (stat2));
	for (i=0;i<len;i++)
	{
		stat1[s1[i]]++;
		stat2[s2[i]]++;
	}
	flag=1;
	for (i=0;i<300;i++)
	{
		if (stat1[i]!=stat2[i])
		{
			flag=0;
			break;
		}
	}
	if (flag==0)
	{
		cout<<"NO"<<endl;
	}
	if (flag==1)
	{
		cout<<"YES"<<endl;
	}
	return 0;
}


void kjj(char a[],int len)
{
	int i,j;
	char c;
	len=strlen(a);
	for(i=1;i<len;i++)
		for(j=0;(j<len-i)&&(a[j]!='\0');j++)
			if(a[j]>a[j+1])
			{
				c=a[j];
				a[j]=a[j+1];
				a[j+1]=c;
			}

}

void main()
{
	char a[10000],b[10000];
	int len1,len2;
    scanf("%s %s",a,b);
    len1=strlen(a);len2=strlen(b);
	kjj(a,len1);
	kjj(b,len2);
	if(strcmp(a,b)==0&&len1==len2)
		printf("YES");
	else
		printf("NO");
}


char f(char a[])
{
    int i,j,k=strlen(a);
    char temp;
    for(j=0;j<k;j++)
    {
        for(i=0;i<k-j;i++)
        {
            if(a[i]<a[i-1])
            {
                temp=a[i];
                a[i]=a[i-1];
                a[i-1]=temp;
            }
        }
    }
    return'o';
}
int main()
{
    char a1[1000],a2[1000];
    scanf("%s %s",a1,a2);
    f(a1);
    f(a2);
    if(strcmp(a1,a2)==0)
    {
        printf("YES");
    }
    else
    {
        printf("NO");
    }
    return 0;
}


int rearrange(char s1[], char s2[])
{
  int count1[128]={0}, count2[128]={0};
int len1,temp;
len1=strlen(s1); temp=strlen(s2);
if( len1!=temp) return 0;
for(temp=0; temp<len1; ++temp)
{ count1[s1[temp]]++; count2[s2[temp]]++;}
for(temp=0;temp<128; ++temp)
if(count1[temp]!=count2[temp]) return 0;
return 1;
}
void main()
{
  int n,j,k,l1,l2,o,i;
  char a[51],b[51];

  scanf("%s %s",a,b);
  if(rearrange(a,b)!=0)   printf("YES");
  else printf("NO");

  }


int main()
{
	int i, j, k, m, count = 0;
	char str[1000];
	cin.getline (str, 1000);
	m = strlen (str);
	for (k = 0; ; k++)
		if (str[k] == ' ')
			break;
	for (i = 0; i < k; i++)
	{
		for (j = k + 1; j <= m; j++)
		{
			if (str[i] == str[j])
			{
				str[j] = '0';
				count++;
				break;
			}
		}
		if (j == 2 * k + 1)
			break;
	}
	if ((i < k) || ((count < k) && (count <= m - k - 1)) || ((count <= k) && (count < m - k - 1)))
		cout << "NO" << endl;
	else
		cout << "YES" << endl;
	return 0;
}


int main()
{
	char a[1100]={'\0'};
	char b[1100]={'\0'};
	cin>>a>>b;
	int la,lb,jieguo=0,jishu=0;
	la=strlen(a);
	lb=strlen(b);
	if(la!=lb)jieguo=0;
	else
	{
		int i,j;
		for(i=0;i<la;i++)
		{
			for(j=0;j<la;j++)
			{
				if(b[j]==a[i]){b[j]='\0';jishu++;break;}
			}
		}
		if(jishu==la)jieguo=1;
	}
	if(jieguo==1)cout<<"YES";
	else cout<<"NO";

	return 0;
}


/*
 * ??????.cpp
 *
 *  Created on: 2011-12-25
 *      Author: Administrator
 */

int main()
{
	char str1[10000],str2[10000];
	int flag[10000] ={0};
	cin.getline(str1,10000);
	int i,j;
	for(i=0;str1[i]!=' ';i++);
	for(j=i+1;str1[j]!='\0';j++)
		str2[j-i-1]=str1[j];
	int len1,len2;
	len1=i;
	len2=j-i-1;
	if(len1!=len2)
		cout<<"NO"<<endl;
	else
	{
		for (i =0;i<len1;i++)
		{
			for (j =0;j<len1;j++)
				if(str1[i]==str2[j]&&flag[j]==0)
				{
					flag[j]=1;
					break;
				}
			if (j ==len1)
			{
				cout<<"NO"<<endl;
				break;
			}
		}
		if (i ==len1)
			cout<<"YES"<<endl;
	}

	return 0;
}


int main()
{
	int i,j,c=0,t;
	char a[20],b[20];
	char *pa,*pb;
	scanf("%s",a);
	scanf("%s",b);
	pa=a;
	pb=b;
	t=strlen(a);

	if (strlen(a)!=strlen(b))
		printf("NO");
	else{
	for(i=0;i<t;i++)
	{
		for(j=0;j<t;j++)
		{
			if (*(pa+i)==*(pb+j))c++;
		}
	}

	if (c>=t)
		printf("YES\n");
	else printf("NO\n");
	}
}


int main()
{
	int i,m,n;
	char s1[100]={0},s2[100]={0},*p;
	scanf("%s %s",s1,s2);
	m=strlen(s1);
	n=strlen(s2);
	if(m!=n)
	{
		printf("NO\n");
		exit(0);
	}
	for(i=0;i<=m;i++)
	{
		if(strchr(s2,s1[i])==NULL)
		{
			printf("NO\n");
			exit(0);
		}
		else
		{
			p=strchr(s2,s1[i]);
			*p=027;
		}
	}
	printf("YES\n");
	return 0;
}


int main(){
	char a[10000];
	char b[10000];
	int i,j;
	char c;
	scanf("%s %s",&a,&b);
	if(strlen(a)!=strlen(b)) printf("NO");
	else{
		for(i=0;i<strlen(a);i++){
			for(j=i;j<strlen(a);j++){
				if(a[i]>a[j]){
					c=a[i];
					a[i]=a[j];
					a[j]=c;
				}
			}
		}
		for(i=0;i<strlen(b);i++){
			for(j=i;j<strlen(b);j++){
				if(b[i]>b[j]){
					c=b[i];
					b[i]=b[j];
					b[j]=c;
				}
			}
		}
		if(strcmp(a,b)==0) printf("YES");
		else printf("NO");
	}
	return 0;
}


/*??????*/
void arrange(char a[],int l)
{
	int i,j;
	char t;
    for(i=0;i<l;i++)
		for(j=0;j<l-i-1;j++)
			if(a[j]>a[j+1])
			{
				t=a[j];
				a[j]=a[j+1];
				a[j+1]=t;
			}
}
void main()
{
	char a[100],b[100];
	scanf("%s%s",a,b);
	int la=strlen(a);
	int lb=strlen(b);
	arrange(a,la);
	arrange(b,lb);
	if(strcmp(a,b)==0&&la==lb) printf("YES\n");
	else printf("NO\n");
}


void ex(char a[], char b[]);
void main(void)
{
	char a[100], b[100];
	int i, j, l;
	scanf("%s%s", a, b);
	ex(a, b);
	if(strlen(a) == strlen(b))
	{
		l = strlen(a);
		i = strcmp(a, b);
		if(i == 0)
			printf("YES");
		else
			printf("NO");
	}
	else
		printf("NO");
}

void ex(char a[], char b[])
{
	char c;
	int l, i, j;
	l =strlen(a);
	for(i = 0;i < l;i ++)
	{
		for(j = 0;j < l - 1;j ++)
		{
			if(a[j] < a[j + 1])
			{
				c = a[j];
				a[j] = a[j + 1];
				a[j + 1] = c;
			}
		}
	}
	l =strlen(b);
	for(i = 0;i < l;i ++)
	{
		for(j = 0;j < l - 1;j ++)
		{
			if(b[j] < b[j + 1])
			{
				c = b[j];
				b[j] = b[j + 1];
				b[j + 1] = c;
			}
		}
	}
}


void main()
{
	char str1[80],str2[80];
	int a,b,m,n,c,d,e,f;
	scanf("%s%s",str1,str2);
	m=strlen(str1);
	n=strlen(str2);
	if(m!=n)
		printf("NO");
	else
	{
		for(a=0;a<m;a++)
			for(c=0;c<m-a;c++)
				if(str1[c]<str1[c+1])
				{
					e=str1[c];
				    str1[c]=str1[c+1];
				    str1[c+1]=e;
				}
			for(b=0;b<n;b++)
				for(d=0;d<n-b;d++)
					if(str2[d]<str2[d+1])
					{
						f=str2[d];
						str2[d]=str2[d+1];
						str2[d+1]=f;
					}
		if(strcmp(str1,str2)==0)
			printf("YES");
		else
			printf("NO");
	}
}


main()
{
	char a[200],b[200];
	scanf("%s %s",a,b);
	int la=strlen(a),lb=strlen(b);
	int i,j;char c;
	if(la!=lb) printf("NO");
	else
	{
		for (i=0;i<la;i++)
			for(j=i+1;j<la;j++)
			{
				if(a[i]<a[j])
				{
					c=a[i];a[i]=a[j];a[j]=c;
				}
			}
		for (i=0;i<lb;i++)
			for(j=i+1;j<lb;j++)
			{
				if(b[i]<b[j])
				{
					c=b[i];b[i]=b[j];b[j]=c;
				}
			}
		if (strcmp(a,b)==0) printf("YES");
		else printf("NO");
	}
	return 0;
}


void main()
{
	int l1,l2,i,s1=0,s2=0;
  char a[300],b[300];
  scanf("%s %s",a,b);
  l1=strlen(a);
  l2=strlen(b);
  if(l1!=l2)
	  printf("NO");
  else
  {
	  for(i=0;i<l1;i++)
	  {
		  s1+=a[i];
	      s2+=b[i];
	  }
	  if(s1==s2)
		  printf("YES");
	  else
	  printf("NO");
  }

}


void main()
{
	int n,i,j,m,k=0;
	char a[100],b[100],c;
	scanf("%s",a);
	scanf("%s",b);
	m=strlen(a);
	n=strlen(b);
	if(m!=n)
		printf("NO");
	else
	{
	   for(i=0;i<m;i++)
	   {
		   k=0;
		 for(j=i;j<m;j++)
		 {
			 if(b[j]==a[i])
			 {
				 c=b[j];
			     b[j]=b[i];
				 b[i]=c;
				 k=1;
				 break;
			 }
			 else
				 k=0;
		 }
		 //printf("%d",k);

		 if(k==0)
			 break;
	   }
	   if(k==1)
		   printf("YES");
	   else
		   printf("NO");
	   }
}


void main()
{
	char str1[100],str2[100];
	int i,j,len1,len2;
	scanf("%s%s",str1,str2);
	if((len1=strlen(str1))!=(len2=strlen(str2)))printf("NO\n");
         else
   {
	for(i=0;i<len1;i++)
		for(j=0;j<len2;j++)
		{
			if(str1[i]==str2[j])
				str1[i]='\0',
				str2[j]='\0';
		}
	for(i=0;i<len1;i++)
		if(str1[i]!='\0')break;
	if(i<len1)printf("NO\n");
	else printf("YES\n");
   }
}


int judge(char*a,char*b);
int main(int argc, char* argv[])
{
	char a[100]={'\0'},b[100]={'\0'};
	scanf("%s%s",a,b);
	if(judge(a,b)==1)
		printf("YES");
	else printf("NO");
	return 0;
}
int judge(char*a,char*b)
{
	int i=0,j=0;
	if (strlen(a)!=strlen(b))
		return 0;
	for(i=0;i<strlen(a);i++)
	{
		for(j=0;j<strlen(a);j++)
		{
			if(*(a+i)==*(b+j))
			{
				*(a+i)=' ';
				*(b+j)=' ';
			}
		}
	}
	for(i=0;i<strlen(a);i++)
	{
		if (*(a+i)!=' ')
			return 0;
	}
	return 1;
}


/*
 * 4.cpp
 *
 *  Created on: 2011-12-30
 *      Author: Administrator
 */
int main()
{
	int t, i, j, k, flag = 1;
	cin >> t;
	char a[100005];
	for( i = 1; i <= t; i++ )
	{
		cin >> a;
		for( j = 0; a[j]!= '\0'; j++ )
		{
			flag = 1;
			for( k = 0; a[k]!= '\0'; k++ )
			{
				if( j == k )
					continue;
				if( a[j] == a[k] )
				{
					flag = 0;
					break;
				}

			}
			if( flag )
			{
				cout << a[j] << endl;
				break;
			}
		}
		if( flag == 0 )
			cout << "no" << endl;
	}
	return 0;
}


int main()
{
	int num,i,j,k,m,flag,already;
	char a[100000];
	scanf("%d",&num);
	getchar();
	for(i=1;i<=num;i++)
	{
		for(j=0;j<99999;j++)
		{
			scanf("%c",&a[j]);
			if(a[j]=='\n') break;
		}
		for(k=0;k<j;k++)
		{
			flag=1;
			already=0;
			for(m=0;m<j;m++)
			{
				if(a[m]==a[k] && m!=k)
				{
					flag*=0;
					break;
				}
			}
			if(flag==1)
			{
				printf("%c\n",a[k]);
				already=1;
				break;
			}
		}
		if(already==0)
				printf("no\n");
	}
	return 0;
}


int main()
{
	char a[10000];
	int i,j,t=0,n,la;
	cin>>n;
	while(cin>>a)
	{
		t=0;
		la=strlen(a);
		for(i=0;i<la;i++)
		{
			t=0;
			for(j=0;j<la;j++)
			{
				if(i==j) continue;
				else
				{
				    if(a[i]==a[j])
			    	{
				    	t=1;
					    break;
				    }
		     	}
			}
			if(t==0)
			{
				cout<<a[i]<<endl;
				break;
			}
		}
		if(t==1) cout<<"no"<<endl;
	}
	return 0;
}


int main()
{
    int n;
	scanf("%d",&n);
	int i;
	for(i=0;i<n;i++)
	{
		char s[10002];
		scanf("%s",s);
		int len;
		len=strlen(s);
		int k;
		int j;

		for(k=0;k<len;k++)
		{
			int number=0;
			for(j=0;j<len;j++)
			{
				if(s[k]==s[j])
				{
					number++;
				}
			}
			if(number==1)
			{
				printf("%c\n",s[k]);
				break;
			}
			if(k==len-1&&number!=1)
			{
				printf("no\n");
			}

		}
	}
	return 0;

}


int main()
{

	char a[10000]={0};
	int i,j,k, n,lenth,num=-1;
	scanf("%d", &n);
	for(i=0;i<n;i++)
	{
		scanf("%s",a);
		lenth=strlen(a);
		for(j=0;j<lenth;j++)
			for(k=0;k<lenth;k++)
			{
				num=-1;
				if(j!=k&&a[j]==a[k])
					break;
				else if(j!=k&&k==lenth-1&&a[j]!=a[k])
				{
					num=j;
					j=lenth;
					break;
				}
				else if(j==lenth-1&&j!=k&&a[j]==a[k])
				{
					printf("no");
					break;
				}
				else if(j==lenth-1&&k==lenth-1)
				{
					num=lenth-1;
				}
			}
			if(num!=-1)
				printf("%c\n",a[num]);
			else
				printf("no\n");

	}
	return 0;
}


int main ()
{
    int t,i,j;
    long l,n;
    scanf ("%d",&t);
    for (i=0;i<t;i++)
    {
        int zimu[26]={0};
        char string[100000];
        char m;
        scanf ("%s",string);
        l=strlen(string);
        for (j=97;j<=122;j++)
        {
            for (n=0;n<l;n++)
            {
                if (j==string[n])
                {
                   zimu[j-97]++;
                }
            }
        }
        for (j=0,n=0;j<l;j++)
        {
            if (zimu[string[j]-97]==1)
            {
               printf ("%c\n",string[j]) ;
               n=1;
               break;
            }
        }
        if (n==0)
        printf ("no\n") ;
    }
    getchar ();
    getchar ();
}


int main()
{
	int n;
	cin>>n;
	while(n--)
	{
		char s[100001];
		cin>>s;
		int len = strlen(s);
		int i;
		int f = 0;
		int a[26];
		memset(a,0,sizeof(a));
		for( i = 0 ; i < len ; i ++)
		{
			a[s[i]-'a'] ++;
		}
		int j;
		char c;
		int mina = 1000001;
		for(i = 0 ; i < 26; i ++)
		{
			if(a[i] == 1)
			{
				f = 1;
				for(j = 0; j < len; j ++)
				{
					if(s[j] == i+'a')
					{
						if(mina > j)
						{
							mina = j;
							c = s[j];
						}
						break;
					}
				}
			}
		}
		if(f == 0)
		{
			cout<<"no"<<endl;
		}
		else
		{
			cout<<c<<endl;
		}
	}
	return 0;
}


int main(int argc, char* argv[])
{
	int n,i,len,m,letter[26],*pl;
	char zfc[100000],*p;

	scanf("%d",&n);

	for(i=0;i<n;i++)
	{
		for(pl=letter;pl<letter+26;pl++)
			*pl=0;
		pl=letter;

		scanf("%s",zfc);
		len=strlen(zfc);
		for(p=zfc;p<zfc+len;p++)
			*(pl+*p-97)+=1;

		m=0;
		for(p=zfc;p<zfc+len;p++)
		{
			if(*(pl+*p-97)==1)
			{
				printf("%c\n",*p);
				m=1;
				break;
			}
		}

		if(m==0)
			printf("no\n");
	}

	return 0;
}


int main()
{
	char ltr[100000];
	int n;
	int i;
	char *p,*t;
	int count=0;
	int k=0;

	scanf("%d",&n);
	for(i=0;i<n;i++){
		scanf("%s",ltr);
		for(p=ltr;p<ltr+strlen(ltr);p++){
			for(t=ltr;t<ltr+strlen(ltr);t++){
				if(*t==*p){
					count++;
				}
			}
			if(count==1){
				k++;
				printf("%c\n",*p);
				break;
			}
			count=0;
		}
		if(k==0){
			printf("no\n");
		}
		count=0;
		k=0;
	}
	return 0;
}


int main()
{
    int t,i,j,k,n,num=0,m,mmin,times=0;
    char s[100000];
    scanf("%d",&t);
    getchar();
    for(i=0;i<t;i++){
                     gets(s);
                     n=strlen(s);
                     mmin=n;
                     times=0;
                     for(j='a';j<='z';j++){
                                           for(k=0;k<n;k++){
                                                            if(s[k]==j){
                                                                        num++;
                                                                        }
                                                            }
                                           if(num==1){
                                                      times++;
                                                      for(k=0;k<n;k++){
                                                                       if(s[k]==j){
                                                                                m=k;
                                                                                break;
                                                                                }
                                                                       }
                                                      if(m<mmin){
                                                                 mmin=m;
                                                                 }
                                                      }
                                           num=0;
                                           }
                     if(times==0){
                                  printf("no\n");
                                  }
                     else{
                          printf("%c\n",s[mmin]);
                          }

                     }

    return 0;
    }


int main()
{
    int n,i,j,k,l,b,c;
	char a;
	char *s=(char *)malloc(sizeof(char)*100000);
	scanf("%d",&n);
	for(i=0;i<n;i++){
	    scanf("%s",s);
		l=strlen(s);
		c=0;
		for(j=0;j<l;j++){
            a=*(s+j);
			b=0;
			for(k=0;k<l;k++){
				if(k!=j&&*(s+k)==a) {b++; break;}
			}
			if(b==0){
			    printf("%c\n",a);
				c++;
				break;
			}
		}
		if(c==0) printf("no\n");
	}
    return 0;
}


int main()
{
    int t;
    scanf("%d",&t);
    for (int c=1;c<=t;c++)
    {
    char a[100000];
    scanf("%s",&a);
    int l=strlen(a),sum=l;
    int app=0;
    for (int i=0;i<=l-1;i++)
    {
        for (int j=0;j<=l-1;j++)
        {
        if (a[i]==a[j])
        app++;
        }
        if (app==1)
        {
                   printf("%c\n",a[i]);
                   break;
        }
        app=0;
        sum--;
    }
    if (sum==0)
    printf("no\n");
    }

}


void main()
{
	int t,i,j,len,d;
	char str[100000];
	scanf("%d",&t);
	for(d=0;d<t;d++)
	{
		scanf("%s",str);
		len=strlen(str);
		for(i=0;i<len;i++)
		{
			for(j=0;j<len;j++)
			{
				if(i==j)
				{

					continue;
				}
				else if(str[i]==str[j])
					break;
			}
			if(j>=len)
			{
				printf("%c\n",str[i]);
				break;
			}
		}
		if(i>=len)
			printf("no\n");
	}
}