#include <iostream>
#include <algorithm>
#include <stdlib.h>
#include <string.h>
#include <vector>
using namespace std;
char s1[30];
char s2[30];
char s3[30];
char *reverse(char *s)
{
if(s==NULL)
return NULL;
int end = strlen(s) -1;
int begin = 0;
char temp;
while(begin <= end)
{
temp = s[begin];
s[begin] = s[end];
s[end] = temp;
begin++;
end --;
}
return s;
}
int main()
{
int i,j,k,len1,temp,len2;
while(scanf("%s",s1)!=EOF)
{
memset(s2,0,sizeof(s2));
len1 = strlen(s1);
k = 0;
for(i =len1-1;i>=0;i--)
{
temp = (s1[i]-‘0‘) * 2 ;
s2[k++] += temp % 10;
s2[k]+= temp/10;
}
if(s2[k]!=0)
{
s2[k+1] = 0;
k++;
}
for(i =0; i<k;i++)
{
s2[i]+=‘0‘; //加上‘0‘,转到数字字符
}
reverse(s2);
strcpy(s3,s2);
sort(s1,s1+strlen(s1)); //按字典序排序,然后对比看看是不是原来的全排列
sort(s2,s2+strlen(s2));
if(strcmp(s1,s2)==0)
{
printf("Yes\n%s\n",s3);
}
else
{
printf("No\n%s\n",s3);
}
}
return 0;
}