#include <iostream>
#include <unordered_map>
using namespace std;
int main(){
string a, b;
int c = 0, d, flag = 1;
char f;
unordered_map<int, int> m;
cin >> a;
for(int i = 1; i <= a.length(); i++){
d = (a[a.length() - i] - '0') * 2 + c;
c = d / 10;
f = '0' + d % 10;
b.insert(0, 1, f);
m[a[a.length() - i] - '0']++;
m[d % 10]--;
}
if(c){//进位不为0,进至前方一位
f = c + '0';
b.insert(0, 1,f);
m[c]++;
}
for(auto it: m){//判断乘法前后各数是否一样多
if(it.second != 0){
flag = 0;
break;
}
}
printf("%s\n%s\n",flag?"Yes":"No",b.c_str());
}