import java.util.ArrayDeque;
import java.util.Deque;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		String S = scan.next();
		String T = scan.next();
		scan.close();
		if(S.equals(T)) {
			System.out.println("Yes");
			System.exit(0);
		}

		String []t = new String[S.length()];
		Deque<String> q1 = new ArrayDeque<String>();

		for(int i = 0; i < S.length(); i++) {
			t[i] = T.substring(i, i + 1);
			q1.addLast(S.substring(i, i + 1));
		}

		int flag = 1;
		for(int i = 0; i < S.length(); i++) {
			flag = 1;
			String te = q1.pollLast();
			q1.addFirst(te);
			//disp(q1);
			int index = 0;
			for(String s1 : q1) {
				if(!s1.equals(t[index])) {
					flag = 0;
					break;
				}
				index ++;
			}
			if(flag == 1) {
				System.out.println("Yes");
				System.exit(0);
			}

		}

		System.out.println("No");
	}
	static void disp(Deque<String> q1) {
		for(String s : q1) {
			System.out.print(s);
		}
		System.out.println();
	}
} import java.util.ArrayDeque; ArrayDeque java.util import java.util.Deque; Deque java.util import java.util.Scanner; Scanner java.util public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		String S = scan.next();
		String T = scan.next();
		scan.close();
		if(S.equals(T)) {
			System.out.println("Yes");
			System.exit(0);
		}

		String []t = new String[S.length()];
		Deque<String> q1 = new ArrayDeque<String>();

		for(int i = 0; i < S.length(); i++) {
			t[i] = T.substring(i, i + 1);
			q1.addLast(S.substring(i, i + 1));
		}

		int flag = 1;
		for(int i = 0; i < S.length(); i++) {
			flag = 1;
			String te = q1.pollLast();
			q1.addFirst(te);
			//disp(q1);
			int index = 0;
			for(String s1 : q1) {
				if(!s1.equals(t[index])) {
					flag = 0;
					break;
				}
				index ++;
			}
			if(flag == 1) {
				System.out.println("Yes");
				System.exit(0);
			}

		}

		System.out.println("No");
	}
	static void disp(Deque<String> q1) {
		for(String s : q1) {
			System.out.print(s);
		}
		System.out.println();
	}
} Main public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		String S = scan.next();
		String T = scan.next();
		scan.close();
		if(S.equals(T)) {
			System.out.println("Yes");
			System.exit(0);
		}

		String []t = new String[S.length()];
		Deque<String> q1 = new ArrayDeque<String>();

		for(int i = 0; i < S.length(); i++) {
			t[i] = T.substring(i, i + 1);
			q1.addLast(S.substring(i, i + 1));
		}

		int flag = 1;
		for(int i = 0; i < S.length(); i++) {
			flag = 1;
			String te = q1.pollLast();
			q1.addFirst(te);
			//disp(q1);
			int index = 0;
			for(String s1 : q1) {
				if(!s1.equals(t[index])) {
					flag = 0;
					break;
				}
				index ++;
			}
			if(flag == 1) {
				System.out.println("Yes");
				System.exit(0);
			}

		}

		System.out.println("No");
	} main {
		Scanner scan = new Scanner(System.in);
		String S = scan.next();
		String T = scan.next();
		scan.close();
		if(S.equals(T)) {
			System.out.println("Yes");
			System.exit(0);
		}

		String []t = new String[S.length()];
		Deque<String> q1 = new ArrayDeque<String>();

		for(int i = 0; i < S.length(); i++) {
			t[i] = T.substring(i, i + 1);
			q1.addLast(S.substring(i, i + 1));
		}

		int flag = 1;
		for(int i = 0; i < S.length(); i++) {
			flag = 1;
			String te = q1.pollLast();
			q1.addFirst(te);
			//disp(q1);
			int index = 0;
			for(String s1 : q1) {
				if(!s1.equals(t[index])) {
					flag = 0;
					break;
				}
				index ++;
			}
			if(flag == 1) {
				System.out.println("Yes");
				System.exit(0);
			}

		}

		System.out.println("No");
	} Scanner scan = new Scanner(System.in); scan new Scanner(System.in) String S = scan.next(); S scan.next() scan.next scan String T = scan.next(); T scan.next() scan.next scan scan.close() scan.close scan if(S.equals(T)) {
			System.out.println("Yes");
			System.exit(0);
		} S.equals(T) S.equals S T {
			System.out.println("Yes");
			System.exit(0);
		} System.out.println("Yes") System.out.println System.out System System.out "Yes" System.exit(0) System.exit System 0 String []t = new String[S.length()]; t new String[S.length()] S.length() S.length S Deque<String> q1 = new ArrayDeque<String>(); q1 new ArrayDeque<String>() for(int i = 0; i < S.length(); i++) {
			t[i] = T.substring(i, i + 1);
			q1.addLast(S.substring(i, i + 1));
		} int i = 0; int i = 0; i 0 i < S.length() i S.length() S.length S i++ i++ i {
			t[i] = T.substring(i, i + 1);
			q1.addLast(S.substring(i, i + 1));
		} {
			t[i] = T.substring(i, i + 1);
			q1.addLast(S.substring(i, i + 1));
		} t[i] = T.substring(i, i + 1) t[i] t i T.substring(i, i + 1) T.substring T i i + 1 i 1 q1.addLast(S.substring(i, i + 1)) q1.addLast q1 S.substring(i, i + 1) S.substring S i i + 1 i 1 int flag = 1; flag 1 for(int i = 0; i < S.length(); i++) {
			flag = 1;
			String te = q1.pollLast();
			q1.addFirst(te);
			//disp(q1);
			int index = 0;
			for(String s1 : q1) {
				if(!s1.equals(t[index])) {
					flag = 0;
					break;
				}
				index ++;
			}
			if(flag == 1) {
				System.out.println("Yes");
				System.exit(0);
			}

		} int i = 0; int i = 0; i 0 i < S.length() i S.length() S.length S i++ i++ i {
			flag = 1;
			String te = q1.pollLast();
			q1.addFirst(te);
			//disp(q1);
			int index = 0;
			for(String s1 : q1) {
				if(!s1.equals(t[index])) {
					flag = 0;
					break;
				}
				index ++;
			}
			if(flag == 1) {
				System.out.println("Yes");
				System.exit(0);
			}

		} {
			flag = 1;
			String te = q1.pollLast();
			q1.addFirst(te);
			//disp(q1);
			int index = 0;
			for(String s1 : q1) {
				if(!s1.equals(t[index])) {
					flag = 0;
					break;
				}
				index ++;
			}
			if(flag == 1) {
				System.out.println("Yes");
				System.exit(0);
			}

		} flag = 1 flag 1 String te = q1.pollLast(); te q1.pollLast() q1.pollLast q1 q1.addFirst(te) q1.addFirst q1 te int index = 0; index 0 for(String s1 : q1) {
				if(!s1.equals(t[index])) {
					flag = 0;
					break;
				}
				index ++;
			} String s1 q1 {
				if(!s1.equals(t[index])) {
					flag = 0;
					break;
				}
				index ++;
			} {
				if(!s1.equals(t[index])) {
					flag = 0;
					break;
				}
				index ++;
			} if(!s1.equals(t[index])) {
					flag = 0;
					break;
				} !s1.equals(t[index]) s1.equals(t[index]) s1.equals s1 t[index] t index {
					flag = 0;
					break;
				} flag = 0 flag 0 break; index ++ index if(flag == 1) {
				System.out.println("Yes");
				System.exit(0);
			} flag == 1 flag 1 {
				System.out.println("Yes");
				System.exit(0);
			} System.out.println("Yes") System.out.println System.out System System.out "Yes" System.exit(0) System.exit System 0 System.out.println("No") System.out.println System.out System System.out "No" String[] args args static void disp(Deque<String> q1) {
		for(String s : q1) {
			System.out.print(s);
		}
		System.out.println();
	} disp {
		for(String s : q1) {
			System.out.print(s);
		}
		System.out.println();
	} for(String s : q1) {
			System.out.print(s);
		} String s q1 {
			System.out.print(s);
		} {
			System.out.print(s);
		} System.out.print(s) System.out.print System.out System System.out s System.out.println() System.out.println System.out System System.out Deque<String> q1 q1 public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		String S = scan.next();
		String T = scan.next();
		scan.close();
		if(S.equals(T)) {
			System.out.println("Yes");
			System.exit(0);
		}

		String []t = new String[S.length()];
		Deque<String> q1 = new ArrayDeque<String>();

		for(int i = 0; i < S.length(); i++) {
			t[i] = T.substring(i, i + 1);
			q1.addLast(S.substring(i, i + 1));
		}

		int flag = 1;
		for(int i = 0; i < S.length(); i++) {
			flag = 1;
			String te = q1.pollLast();
			q1.addFirst(te);
			//disp(q1);
			int index = 0;
			for(String s1 : q1) {
				if(!s1.equals(t[index])) {
					flag = 0;
					break;
				}
				index ++;
			}
			if(flag == 1) {
				System.out.println("Yes");
				System.exit(0);
			}

		}

		System.out.println("No");
	}
	static void disp(Deque<String> q1) {
		for(String s : q1) {
			System.out.print(s);
		}
		System.out.println();
	}
} public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		String S = scan.next();
		String T = scan.next();
		scan.close();
		if(S.equals(T)) {
			System.out.println("Yes");
			System.exit(0);
		}

		String []t = new String[S.length()];
		Deque<String> q1 = new ArrayDeque<String>();

		for(int i = 0; i < S.length(); i++) {
			t[i] = T.substring(i, i + 1);
			q1.addLast(S.substring(i, i + 1));
		}

		int flag = 1;
		for(int i = 0; i < S.length(); i++) {
			flag = 1;
			String te = q1.pollLast();
			q1.addFirst(te);
			//disp(q1);
			int index = 0;
			for(String s1 : q1) {
				if(!s1.equals(t[index])) {
					flag = 0;
					break;
				}
				index ++;
			}
			if(flag == 1) {
				System.out.println("Yes");
				System.exit(0);
			}

		}

		System.out.println("No");
	}
	static void disp(Deque<String> q1) {
		for(String s : q1) {
			System.out.print(s);
		}
		System.out.println();
	}
} Main
import java.util.ArrayDeque;
import java.util.Deque;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		String S = scan.next();
		String T = scan.next();
		scan.close();
		if(S.equals(T)) {
			System.out.println("Yes");
			System.exit(0);
		}

		String []t = new String[S.length()];
		Deque<String> q1 = new ArrayDeque<String>();

		for(int i = 0; i < S.length(); i++) {
			t[i] = T.substring(i, i + 1);
			q1.addLast(S.substring(i, i + 1));
		}

		int flag = 1;
		for(int i = 0; i < S.length(); i++) {
			flag = 1;
			String te = q1.pollLast();
			q1.addFirst(te);
			//disp(q1);
			int index = 0;
			for(String s1 : q1) {
				if(!s1.equals(t[index])) {
					flag = 0;
					break;
				}
				index ++;
			}
			if(flag == 1) {
				System.out.println("Yes");
				System.exit(0);
			}

		}

		System.out.println("No");
	}
	static void disp(Deque<String> q1) {
		for(String s : q1) {
			System.out.print(s);
		}
		System.out.println();
	}
}