import java.util.*;

public class Main {

	public static void main(String[] args) {
		// make new Scanner.
		Scanner sc = new Scanner(System.in);
//		int n = Integer.parseInt(sc.next());
		
		String s = sc.next();
		String t = sc.next();
		boolean flag = false;
		
		if (s.equals(t)) {
			System.out.println("Yes");
		} else {
			String[] str = s.split("");
			List<String> list=Arrays.asList(str);
			for (int a=0;a<list.size();a++) {
				for (int b=0;b<list.size()-1;b++) {
					Collections.swap(list, b, b+1);
				}
				if (String.join("", list).equals(t)) {
					System.out.println("Yes");
					flag =true;
					break;
				}
			}
			if (!flag) {
				System.out.println("No");
			}
			
		}
		
		
//		
//
//		List<Integer> list = new ArrayList<Integer>();
//		
//		list = inList(sc,3);
//		
//		Collections.sort(list, Comparator.reverseOrder());
//		
//		int a = list.get(0) - list.get(1) + list.get(1) - list.get(2);
//		
//		System.out.println(a);
		

		// close Scanner
		sc.close();

	}

	
	/**
	 *  入力した数字を配列に格納するメソッド.
	 * @param sc
	 * @param n
	 * @return
	 */
	public static List<Integer> inList(Scanner sc, int n) {
		List<Integer> list = new ArrayList<Integer>();
		for (int a=0;a<n;a++) {
			list.add(sc.nextInt());
		}
		return list;
	}
	
	/**
	 *  入力した数字を配列に格納するメソッド.
	 * @param sc
	 * @param n
	 * @return
	 */
	public static List<Long> inLongList(Scanner sc, int n) {
		List<Long> list = new ArrayList<Long>();
		for (int a=0;a<n;a++) {
			list.add(sc.nextLong());
		}
		return list;
	}
	
	
	/**
	 *   リストの数字の美しさを求める.
	 */
	public static int beautyList(List<Integer> list, int d) {
		int a=0;
		for (int b=0;b<= list.size(); b++) {
			if (Math.abs(list.get(b) - list.get(b+1)) ==d) {
				a++;
			}
		}
		return a;
	}
	
	public static String judge(List<Long> list) {
		Long a =list.get(0);
		Long b =list.get(1);
		Long c =list.get(2);
		Long d =list.get(3);
		
		if (a < b
				|| b > d)
				{
			return "No";
		}
		if (a-b < b) {
			if (a-b > c) {
				return "No";
			} else if (b ==d) {
				return "Yes";
			}
		}
		if (b % 2 == 0) {
			if (b*2 <= c+d) {
				return "Yes";
			} else {
				return "No";
			}
		} else {
			if (b*2 < c+d) {
				return "Yes";
			} else {
				return "No";
			}
		}
	}

} import java.util.*; util.* java public class Main {

	public static void main(String[] args) {
		// make new Scanner.
		Scanner sc = new Scanner(System.in);
//		int n = Integer.parseInt(sc.next());
		
		String s = sc.next();
		String t = sc.next();
		boolean flag = false;
		
		if (s.equals(t)) {
			System.out.println("Yes");
		} else {
			String[] str = s.split("");
			List<String> list=Arrays.asList(str);
			for (int a=0;a<list.size();a++) {
				for (int b=0;b<list.size()-1;b++) {
					Collections.swap(list, b, b+1);
				}
				if (String.join("", list).equals(t)) {
					System.out.println("Yes");
					flag =true;
					break;
				}
			}
			if (!flag) {
				System.out.println("No");
			}
			
		}
		
		
//		
//
//		List<Integer> list = new ArrayList<Integer>();
//		
//		list = inList(sc,3);
//		
//		Collections.sort(list, Comparator.reverseOrder());
//		
//		int a = list.get(0) - list.get(1) + list.get(1) - list.get(2);
//		
//		System.out.println(a);
		

		// close Scanner
		sc.close();

	}

	
	/**
	 *  入力した数字を配列に格納するメソッド.
	 * @param sc
	 * @param n
	 * @return
	 */
	public static List<Integer> inList(Scanner sc, int n) {
		List<Integer> list = new ArrayList<Integer>();
		for (int a=0;a<n;a++) {
			list.add(sc.nextInt());
		}
		return list;
	}
	
	/**
	 *  入力した数字を配列に格納するメソッド.
	 * @param sc
	 * @param n
	 * @return
	 */
	public static List<Long> inLongList(Scanner sc, int n) {
		List<Long> list = new ArrayList<Long>();
		for (int a=0;a<n;a++) {
			list.add(sc.nextLong());
		}
		return list;
	}
	
	
	/**
	 *   リストの数字の美しさを求める.
	 */
	public static int beautyList(List<Integer> list, int d) {
		int a=0;
		for (int b=0;b<= list.size(); b++) {
			if (Math.abs(list.get(b) - list.get(b+1)) ==d) {
				a++;
			}
		}
		return a;
	}
	
	public static String judge(List<Long> list) {
		Long a =list.get(0);
		Long b =list.get(1);
		Long c =list.get(2);
		Long d =list.get(3);
		
		if (a < b
				|| b > d)
				{
			return "No";
		}
		if (a-b < b) {
			if (a-b > c) {
				return "No";
			} else if (b ==d) {
				return "Yes";
			}
		}
		if (b % 2 == 0) {
			if (b*2 <= c+d) {
				return "Yes";
			} else {
				return "No";
			}
		} else {
			if (b*2 < c+d) {
				return "Yes";
			} else {
				return "No";
			}
		}
	}

} Main public static void main(String[] args) {
		// make new Scanner.
		Scanner sc = new Scanner(System.in);
//		int n = Integer.parseInt(sc.next());
		
		String s = sc.next();
		String t = sc.next();
		boolean flag = false;
		
		if (s.equals(t)) {
			System.out.println("Yes");
		} else {
			String[] str = s.split("");
			List<String> list=Arrays.asList(str);
			for (int a=0;a<list.size();a++) {
				for (int b=0;b<list.size()-1;b++) {
					Collections.swap(list, b, b+1);
				}
				if (String.join("", list).equals(t)) {
					System.out.println("Yes");
					flag =true;
					break;
				}
			}
			if (!flag) {
				System.out.println("No");
			}
			
		}
		
		
//		
//
//		List<Integer> list = new ArrayList<Integer>();
//		
//		list = inList(sc,3);
//		
//		Collections.sort(list, Comparator.reverseOrder());
//		
//		int a = list.get(0) - list.get(1) + list.get(1) - list.get(2);
//		
//		System.out.println(a);
		

		// close Scanner
		sc.close();

	} main {
		// make new Scanner.
		Scanner sc = new Scanner(System.in);
//		int n = Integer.parseInt(sc.next());
		
		String s = sc.next();
		String t = sc.next();
		boolean flag = false;
		
		if (s.equals(t)) {
			System.out.println("Yes");
		} else {
			String[] str = s.split("");
			List<String> list=Arrays.asList(str);
			for (int a=0;a<list.size();a++) {
				for (int b=0;b<list.size()-1;b++) {
					Collections.swap(list, b, b+1);
				}
				if (String.join("", list).equals(t)) {
					System.out.println("Yes");
					flag =true;
					break;
				}
			}
			if (!flag) {
				System.out.println("No");
			}
			
		}
		
		
//		
//
//		List<Integer> list = new ArrayList<Integer>();
//		
//		list = inList(sc,3);
//		
//		Collections.sort(list, Comparator.reverseOrder());
//		
//		int a = list.get(0) - list.get(1) + list.get(1) - list.get(2);
//		
//		System.out.println(a);
		

		// close Scanner
		sc.close();

	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) String s = sc.next(); s sc.next() sc.next sc String t = sc.next(); t sc.next() sc.next sc boolean flag = false; flag false if (s.equals(t)) {
			System.out.println("Yes");
		} else {
			String[] str = s.split("");
			List<String> list=Arrays.asList(str);
			for (int a=0;a<list.size();a++) {
				for (int b=0;b<list.size()-1;b++) {
					Collections.swap(list, b, b+1);
				}
				if (String.join("", list).equals(t)) {
					System.out.println("Yes");
					flag =true;
					break;
				}
			}
			if (!flag) {
				System.out.println("No");
			}
			
		} s.equals(t) s.equals s t {
			System.out.println("Yes");
		} System.out.println("Yes") System.out.println System.out System System.out "Yes" {
			String[] str = s.split("");
			List<String> list=Arrays.asList(str);
			for (int a=0;a<list.size();a++) {
				for (int b=0;b<list.size()-1;b++) {
					Collections.swap(list, b, b+1);
				}
				if (String.join("", list).equals(t)) {
					System.out.println("Yes");
					flag =true;
					break;
				}
			}
			if (!flag) {
				System.out.println("No");
			}
			
		} String[] str = s.split(""); str s.split("") s.split s "" List<String> list=Arrays.asList(str); list Arrays.asList(str) Arrays.asList Arrays str for (int a=0;a<list.size();a++) {
				for (int b=0;b<list.size()-1;b++) {
					Collections.swap(list, b, b+1);
				}
				if (String.join("", list).equals(t)) {
					System.out.println("Yes");
					flag =true;
					break;
				}
			} int a=0; int a=0; a 0 a<list.size() a list.size() list.size list a++ a++ a {
				for (int b=0;b<list.size()-1;b++) {
					Collections.swap(list, b, b+1);
				}
				if (String.join("", list).equals(t)) {
					System.out.println("Yes");
					flag =true;
					break;
				}
			} {
				for (int b=0;b<list.size()-1;b++) {
					Collections.swap(list, b, b+1);
				}
				if (String.join("", list).equals(t)) {
					System.out.println("Yes");
					flag =true;
					break;
				}
			} for (int b=0;b<list.size()-1;b++) {
					Collections.swap(list, b, b+1);
				} int b=0; int b=0; b 0 b<list.size()-1 b list.size()-1 list.size() list.size list 1 b++ b++ b {
					Collections.swap(list, b, b+1);
				} {
					Collections.swap(list, b, b+1);
				} Collections.swap(list, b, b+1) Collections.swap Collections list b b+1 b 1 if (String.join("", list).equals(t)) {
					System.out.println("Yes");
					flag =true;
					break;
				} String.join("", list).equals(t) String.join("", list).equals String.join("", list) String.join String "" list t {
					System.out.println("Yes");
					flag =true;
					break;
				} System.out.println("Yes") System.out.println System.out System System.out "Yes" flag =true flag true break; if (!flag) {
				System.out.println("No");
			} !flag flag {
				System.out.println("No");
			} System.out.println("No") System.out.println System.out System System.out "No" sc.close() sc.close sc String[] args args /**
	 *  入力した数字を配列に格納するメソッド.
	 * @param sc
	 * @param n
	 * @return
	 */
	public static List<Integer> inList(Scanner sc, int n) {
		List<Integer> list = new ArrayList<Integer>();
		for (int a=0;a<n;a++) {
			list.add(sc.nextInt());
		}
		return list;
	} inList {
		List<Integer> list = new ArrayList<Integer>();
		for (int a=0;a<n;a++) {
			list.add(sc.nextInt());
		}
		return list;
	} List<Integer> list = new ArrayList<Integer>(); list new ArrayList<Integer>() for (int a=0;a<n;a++) {
			list.add(sc.nextInt());
		} int a=0; int a=0; a 0 a<n a n a++ a++ a {
			list.add(sc.nextInt());
		} {
			list.add(sc.nextInt());
		} list.add(sc.nextInt()) list.add list sc.nextInt() sc.nextInt sc return list; list Scanner sc sc int n n /**
	 *  入力した数字を配列に格納するメソッド.
	 * @param sc
	 * @param n
	 * @return
	 */
	public static List<Long> inLongList(Scanner sc, int n) {
		List<Long> list = new ArrayList<Long>();
		for (int a=0;a<n;a++) {
			list.add(sc.nextLong());
		}
		return list;
	} inLongList {
		List<Long> list = new ArrayList<Long>();
		for (int a=0;a<n;a++) {
			list.add(sc.nextLong());
		}
		return list;
	} List<Long> list = new ArrayList<Long>(); list new ArrayList<Long>() for (int a=0;a<n;a++) {
			list.add(sc.nextLong());
		} int a=0; int a=0; a 0 a<n a n a++ a++ a {
			list.add(sc.nextLong());
		} {
			list.add(sc.nextLong());
		} list.add(sc.nextLong()) list.add list sc.nextLong() sc.nextLong sc return list; list Scanner sc sc int n n /**
	 *   リストの数字の美しさを求める.
	 */
	public static int beautyList(List<Integer> list, int d) {
		int a=0;
		for (int b=0;b<= list.size(); b++) {
			if (Math.abs(list.get(b) - list.get(b+1)) ==d) {
				a++;
			}
		}
		return a;
	} beautyList {
		int a=0;
		for (int b=0;b<= list.size(); b++) {
			if (Math.abs(list.get(b) - list.get(b+1)) ==d) {
				a++;
			}
		}
		return a;
	} int a=0; a 0 for (int b=0;b<= list.size(); b++) {
			if (Math.abs(list.get(b) - list.get(b+1)) ==d) {
				a++;
			}
		} int b=0; int b=0; b 0 b<= list.size() b list.size() list.size list b++ b++ b {
			if (Math.abs(list.get(b) - list.get(b+1)) ==d) {
				a++;
			}
		} {
			if (Math.abs(list.get(b) - list.get(b+1)) ==d) {
				a++;
			}
		} if (Math.abs(list.get(b) - list.get(b+1)) ==d) {
				a++;
			} Math.abs(list.get(b) - list.get(b+1)) ==d Math.abs(list.get(b) - list.get(b+1)) Math.abs Math list.get(b) - list.get(b+1) list.get(b) list.get list b list.get(b+1) list.get list b+1 b 1 d {
				a++;
			} a++ a return a; a List<Integer> list list int d d public static String judge(List<Long> list) {
		Long a =list.get(0);
		Long b =list.get(1);
		Long c =list.get(2);
		Long d =list.get(3);
		
		if (a < b
				|| b > d)
				{
			return "No";
		}
		if (a-b < b) {
			if (a-b > c) {
				return "No";
			} else if (b ==d) {
				return "Yes";
			}
		}
		if (b % 2 == 0) {
			if (b*2 <= c+d) {
				return "Yes";
			} else {
				return "No";
			}
		} else {
			if (b*2 < c+d) {
				return "Yes";
			} else {
				return "No";
			}
		}
	} judge {
		Long a =list.get(0);
		Long b =list.get(1);
		Long c =list.get(2);
		Long d =list.get(3);
		
		if (a < b
				|| b > d)
				{
			return "No";
		}
		if (a-b < b) {
			if (a-b > c) {
				return "No";
			} else if (b ==d) {
				return "Yes";
			}
		}
		if (b % 2 == 0) {
			if (b*2 <= c+d) {
				return "Yes";
			} else {
				return "No";
			}
		} else {
			if (b*2 < c+d) {
				return "Yes";
			} else {
				return "No";
			}
		}
	} Long a =list.get(0); a list.get(0) list.get list 0 Long b =list.get(1); b list.get(1) list.get list 1 Long c =list.get(2); c list.get(2) list.get list 2 Long d =list.get(3); d list.get(3) list.get list 3 if (a < b
				|| b > d)
				{
			return "No";
		} a < b
				|| b > d a < b a b b > d b d {
			return "No";
		} return "No"; "No" if (a-b < b) {
			if (a-b > c) {
				return "No";
			} else if (b ==d) {
				return "Yes";
			}
		} a-b < b a-b a b b {
			if (a-b > c) {
				return "No";
			} else if (b ==d) {
				return "Yes";
			}
		} if (a-b > c) {
				return "No";
			} else if (b ==d) {
				return "Yes";
			} a-b > c a-b a b c {
				return "No";
			} return "No"; "No" if (b ==d) {
				return "Yes";
			} b ==d b d {
				return "Yes";
			} return "Yes"; "Yes" if (b % 2 == 0) {
			if (b*2 <= c+d) {
				return "Yes";
			} else {
				return "No";
			}
		} else {
			if (b*2 < c+d) {
				return "Yes";
			} else {
				return "No";
			}
		} b % 2 == 0 b % 2 b 2 0 {
			if (b*2 <= c+d) {
				return "Yes";
			} else {
				return "No";
			}
		} if (b*2 <= c+d) {
				return "Yes";
			} else {
				return "No";
			} b*2 <= c+d b*2 b 2 c+d c d {
				return "Yes";
			} return "Yes"; "Yes" {
				return "No";
			} return "No"; "No" {
			if (b*2 < c+d) {
				return "Yes";
			} else {
				return "No";
			}
		} if (b*2 < c+d) {
				return "Yes";
			} else {
				return "No";
			} b*2 < c+d b*2 b 2 c+d c d {
				return "Yes";
			} return "Yes"; "Yes" {
				return "No";
			} return "No"; "No" List<Long> list list public class Main {

	public static void main(String[] args) {
		// make new Scanner.
		Scanner sc = new Scanner(System.in);
//		int n = Integer.parseInt(sc.next());
		
		String s = sc.next();
		String t = sc.next();
		boolean flag = false;
		
		if (s.equals(t)) {
			System.out.println("Yes");
		} else {
			String[] str = s.split("");
			List<String> list=Arrays.asList(str);
			for (int a=0;a<list.size();a++) {
				for (int b=0;b<list.size()-1;b++) {
					Collections.swap(list, b, b+1);
				}
				if (String.join("", list).equals(t)) {
					System.out.println("Yes");
					flag =true;
					break;
				}
			}
			if (!flag) {
				System.out.println("No");
			}
			
		}
		
		
//		
//
//		List<Integer> list = new ArrayList<Integer>();
//		
//		list = inList(sc,3);
//		
//		Collections.sort(list, Comparator.reverseOrder());
//		
//		int a = list.get(0) - list.get(1) + list.get(1) - list.get(2);
//		
//		System.out.println(a);
		

		// close Scanner
		sc.close();

	}

	
	/**
	 *  入力した数字を配列に格納するメソッド.
	 * @param sc
	 * @param n
	 * @return
	 */
	public static List<Integer> inList(Scanner sc, int n) {
		List<Integer> list = new ArrayList<Integer>();
		for (int a=0;a<n;a++) {
			list.add(sc.nextInt());
		}
		return list;
	}
	
	/**
	 *  入力した数字を配列に格納するメソッド.
	 * @param sc
	 * @param n
	 * @return
	 */
	public static List<Long> inLongList(Scanner sc, int n) {
		List<Long> list = new ArrayList<Long>();
		for (int a=0;a<n;a++) {
			list.add(sc.nextLong());
		}
		return list;
	}
	
	
	/**
	 *   リストの数字の美しさを求める.
	 */
	public static int beautyList(List<Integer> list, int d) {
		int a=0;
		for (int b=0;b<= list.size(); b++) {
			if (Math.abs(list.get(b) - list.get(b+1)) ==d) {
				a++;
			}
		}
		return a;
	}
	
	public static String judge(List<Long> list) {
		Long a =list.get(0);
		Long b =list.get(1);
		Long c =list.get(2);
		Long d =list.get(3);
		
		if (a < b
				|| b > d)
				{
			return "No";
		}
		if (a-b < b) {
			if (a-b > c) {
				return "No";
			} else if (b ==d) {
				return "Yes";
			}
		}
		if (b % 2 == 0) {
			if (b*2 <= c+d) {
				return "Yes";
			} else {
				return "No";
			}
		} else {
			if (b*2 < c+d) {
				return "Yes";
			} else {
				return "No";
			}
		}
	}

} public class Main {

	public static void main(String[] args) {
		// make new Scanner.
		Scanner sc = new Scanner(System.in);
//		int n = Integer.parseInt(sc.next());
		
		String s = sc.next();
		String t = sc.next();
		boolean flag = false;
		
		if (s.equals(t)) {
			System.out.println("Yes");
		} else {
			String[] str = s.split("");
			List<String> list=Arrays.asList(str);
			for (int a=0;a<list.size();a++) {
				for (int b=0;b<list.size()-1;b++) {
					Collections.swap(list, b, b+1);
				}
				if (String.join("", list).equals(t)) {
					System.out.println("Yes");
					flag =true;
					break;
				}
			}
			if (!flag) {
				System.out.println("No");
			}
			
		}
		
		
//		
//
//		List<Integer> list = new ArrayList<Integer>();
//		
//		list = inList(sc,3);
//		
//		Collections.sort(list, Comparator.reverseOrder());
//		
//		int a = list.get(0) - list.get(1) + list.get(1) - list.get(2);
//		
//		System.out.println(a);
		

		// close Scanner
		sc.close();

	}

	
	/**
	 *  入力した数字を配列に格納するメソッド.
	 * @param sc
	 * @param n
	 * @return
	 */
	public static List<Integer> inList(Scanner sc, int n) {
		List<Integer> list = new ArrayList<Integer>();
		for (int a=0;a<n;a++) {
			list.add(sc.nextInt());
		}
		return list;
	}
	
	/**
	 *  入力した数字を配列に格納するメソッド.
	 * @param sc
	 * @param n
	 * @return
	 */
	public static List<Long> inLongList(Scanner sc, int n) {
		List<Long> list = new ArrayList<Long>();
		for (int a=0;a<n;a++) {
			list.add(sc.nextLong());
		}
		return list;
	}
	
	
	/**
	 *   リストの数字の美しさを求める.
	 */
	public static int beautyList(List<Integer> list, int d) {
		int a=0;
		for (int b=0;b<= list.size(); b++) {
			if (Math.abs(list.get(b) - list.get(b+1)) ==d) {
				a++;
			}
		}
		return a;
	}
	
	public static String judge(List<Long> list) {
		Long a =list.get(0);
		Long b =list.get(1);
		Long c =list.get(2);
		Long d =list.get(3);
		
		if (a < b
				|| b > d)
				{
			return "No";
		}
		if (a-b < b) {
			if (a-b > c) {
				return "No";
			} else if (b ==d) {
				return "Yes";
			}
		}
		if (b % 2 == 0) {
			if (b*2 <= c+d) {
				return "Yes";
			} else {
				return "No";
			}
		} else {
			if (b*2 < c+d) {
				return "Yes";
			} else {
				return "No";
			}
		}
	}

} Main
import java.util.*;

public class Main {

	public static void main(String[] args) {
		// make new Scanner.
		Scanner sc = new Scanner(System.in);
//		int n = Integer.parseInt(sc.next());
		
		String s = sc.next();
		String t = sc.next();
		boolean flag = false;
		
		if (s.equals(t)) {
			System.out.println("Yes");
		} else {
			String[] str = s.split("");
			List<String> list=Arrays.asList(str);
			for (int a=0;a<list.size();a++) {
				for (int b=0;b<list.size()-1;b++) {
					Collections.swap(list, b, b+1);
				}
				if (String.join("", list).equals(t)) {
					System.out.println("Yes");
					flag =true;
					break;
				}
			}
			if (!flag) {
				System.out.println("No");
			}
			
		}
		
		
//		
//
//		List<Integer> list = new ArrayList<Integer>();
//		
//		list = inList(sc,3);
//		
//		Collections.sort(list, Comparator.reverseOrder());
//		
//		int a = list.get(0) - list.get(1) + list.get(1) - list.get(2);
//		
//		System.out.println(a);
		

		// close Scanner
		sc.close();

	}

	
	/**
	 *  入力した数字を配列に格納するメソッド.
	 * @param sc
	 * @param n
	 * @return
	 */
	public static List<Integer> inList(Scanner sc, int n) {
		List<Integer> list = new ArrayList<Integer>();
		for (int a=0;a<n;a++) {
			list.add(sc.nextInt());
		}
		return list;
	}
	
	/**
	 *  入力した数字を配列に格納するメソッド.
	 * @param sc
	 * @param n
	 * @return
	 */
	public static List<Long> inLongList(Scanner sc, int n) {
		List<Long> list = new ArrayList<Long>();
		for (int a=0;a<n;a++) {
			list.add(sc.nextLong());
		}
		return list;
	}
	
	
	/**
	 *   リストの数字の美しさを求める.
	 */
	public static int beautyList(List<Integer> list, int d) {
		int a=0;
		for (int b=0;b<= list.size(); b++) {
			if (Math.abs(list.get(b) - list.get(b+1)) ==d) {
				a++;
			}
		}
		return a;
	}
	
	public static String judge(List<Long> list) {
		Long a =list.get(0);
		Long b =list.get(1);
		Long c =list.get(2);
		Long d =list.get(3);
		
		if (a < b
				|| b > d)
				{
			return "No";
		}
		if (a-b < b) {
			if (a-b > c) {
				return "No";
			} else if (b ==d) {
				return "Yes";
			}
		}
		if (b % 2 == 0) {
			if (b*2 <= c+d) {
				return "Yes";
			} else {
				return "No";
			}
		} else {
			if (b*2 < c+d) {
				return "Yes";
			} else {
				return "No";
			}
		}
	}

}