#include<cstring>#include<iostream>#include<algorithm>#include<string.h>usingnamespace std;constint N =2000000;int n;char a[N], b[N];intget_min(char str[]){int i =0, j =1;while(i < n && j < n){int k =0;while(k < n && str[i + k]== str[j + k]) k++;if(k == n)break;if(str[i + k]> str[j + k]) i += k +1;else j += k +1;if(i == j) i++;}int res =min(i, j);
str[res + n]=0;return res;}intmain(){scanf("%s%s", a, b);
n =strlen(a);memcpy(a + n, a, n);memcpy(b + n, b, n);int ia =get_min(a), ib =get_min(b);if(strcmp(a + ia, b + ib))puts("No");else{puts("Yes");puts(a + ia);}return0;}