staticclassMain{staticMain main =newMain();publicstaticvoidmain(String[] args){
main.process();}privatevoidprocess(){Scanner in =newScanner(System.in);String a = in.next(), b = in.next();String aa =getMin(a), bb =getMin(b);if(aa.equals(bb)){System.out.println("Yes");System.out.println(aa);}else{System.out.println("No");}}publicStringgetMin(String s){int n = s.length();
s = s + s;char[] ch = s.toCharArray();int i =0, j =1;while(i < n && j < n){int k =0;//while的写法把k放在内侧while(k < n && ch[i + k]== ch[j + k]) k++;if(ch[i + k]> ch[j + k]){
i += k +1;}else{
j += k +1;}if(i == j) j++;}int t =Math.min(i, j);return s.substring(t, t + n);}}