#include<bits/stdc++.h>
using namespace std;
#define N 1000007
int a[N],b[N];
int n;
int query(int c[]){
int x=1,y=2;
while(x<=n&&y<=n){
int i;
for(i=0;i<n&&c[i+x]==c[i+y];++i){}
if(i==n) break;
if(c[i+x]>c[i+y]){
x+=i+1;
if(x==y) ++x;
}
else{
y+=i+1;
if(x==y) ++y;
}
}
return min(x,y);
}
signed main(){
char ch;
ch=getchar();
while(ch!='\n'){
a[++n]=ch-'0';
ch=getchar();
}
n--;
for(int i=1;i<=n;++i){
scanf("%1d",b+i);
}
for(int i=1;i<=n;++i){
a[n+i]=a[i];
b[n+i]=b[i];
}
int x=query(a),y=query(b);
int fl=1;
for(int i=1;i<=n;++i){
fl|=a[x+i-1]==b[y+i-1];
}
if(fl){
puts("Yes");
for(int i=1;i<=n;++i){
printf("%d",a[x+i-1]);
}
}
else{
cout<<"No";
}
return 0;
}