Problem:
Score : 200 points

Problem Statement

You are given string S and T consisting of lowercase English letters.

Determine if S equals T after rotation.

That is, determine if S equals T after the following operation is performed some number of times:

Operation: Let S = S_1 S_2 ... S_{|S|}. Change S to S_{|S|} S_1 S_2 ... S_{|S|-1}.

Here, |X| denotes the length of the string X.

Constraints

2 \leq |S| \leq 100

|S| = |T|

S and T consist of lowercase English letters.

Input

Input is given from Standard Input in the following format:

S
T

Output

If S equals T after rotation, print Yes; if it does not, print No.

Sample Input 1

kyoto
tokyo

Sample Output 1

Yes

In the first operation, kyoto becomes okyot.

In the second operation, okyot becomes tokyo.

Sample Input 2

abc
arc

Sample Output 2

No

abc does not equal arc after any number of operations.

Sample Input 3

aaaaaaaaaaaaaaab
aaaaaaaaaaaaaaab

Sample Output 3

Yes

Solution in C# (Mono 4.6.2.0) (judge verdict: Accepted)

using System;
using System.Collections.Generic;
using System.Linq;
 
static class MainClass {
  static Action yes = Yes;
  static Action no = No;
  
  public static void Main (string[] args) {
    //var temp = Console.ReadLine().Split(' ').Select(int.Parse);
    var N = Console.ReadLine().ToCharArray();
    var K = Console.ReadLine();

    for(var i = 0; i < N.Length; i++){
      N = N.Select((x, index) => {return index == 0 ? N[N.Length - 1] : N[index - 1];}).ToArray(); 
      var str = new String(N);
      if(str == K){
        yes();
        return;
      }
    }
    var ans = no;
    ans();

  }
  private static void Yes(){
    Console.WriteLine("Yes");
  }
  private static void No(){
    Console.WriteLine("No");
  }
}