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++14 (GCC 5.4.1) (judge verdict: Accepted)

#include <iostream>
#include <string.h>

using namespace std;

int main () {
  string s1;
  string s2;
  cin >> s1 >> s2;
  for (int i = 0; i < s1.size(); i++) {
      string s3 = s1.substr(i, s1.size() - i);
      string s4 = s2.substr(0, s1.size() - i);
      string s5 = s1.substr(0, i);
      string s6 = s2.substr(s1.size() - i , i);
      
      // cout << s3 << " " << s4 << " "<< s5 << " " << s6 << std::endl;

      if (
        s3 == s4
        &&
        s5 == s6
      ) {
      cout << "Yes" << std::endl;
      break;  
    }  
    if (i == (s1.size() - 1)) {
      cout << "No" << std::endl;  
    }
  }  
}