import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
        BufferedReader kb = new BufferedReader( new InputStreamReader( System.in ) );
        try {
            String ringStr = kb.readLine();    // リング状の文字列
            String targetStr = kb.readLine();  // 対象の文字列

            int ringStrLen = ringStr.length();     // リング状の文字列の長さ
            int targetStrLen = targetStr.length(); // 対象の文字列の長さ
            int j = 0;
            for( int i = 0; i < ringStrLen; i++ ) {
                if( targetStr.charAt( 0 ) == ringStr.charAt( i ) ) {
                	// リング状の文字列における対象の文字列のインデックス用
                    int ij = i;
                    for( j = 0; j < targetStrLen; j++ ) {
                    	// リング状の文字列のインデックスを超えないように剰余演算
                        ij = ( i+j ) % ringStrLen;
                        // 文字が一致しない場合、リング状の文字列の次の文字に進めるため処理を抜ける
                        if( targetStr.charAt( j ) != ringStr.charAt( ij ) ) {
                            break;
                        }
                    }
                }
                // 対象の文字列が見つかった場合、処理を抜ける
                if( targetStrLen == j ) { break; }
            }

            // 対象の文字列が見つかった場合、j = 0 にリセットされないので、
            if( targetStrLen == j ) {
                System.out.println( "Yes" );            
            } else {
                System.out.println( "No" );
            }
        } catch( IOException e ) {
            System.err.println( e );
        }

	}

}
 import java.io.BufferedReader; BufferedReader java.io import java.io.IOException; IOException java.io import java.io.InputStreamReader; InputStreamReader java.io public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
        BufferedReader kb = new BufferedReader( new InputStreamReader( System.in ) );
        try {
            String ringStr = kb.readLine();    // リング状の文字列
            String targetStr = kb.readLine();  // 対象の文字列

            int ringStrLen = ringStr.length();     // リング状の文字列の長さ
            int targetStrLen = targetStr.length(); // 対象の文字列の長さ
            int j = 0;
            for( int i = 0; i < ringStrLen; i++ ) {
                if( targetStr.charAt( 0 ) == ringStr.charAt( i ) ) {
                	// リング状の文字列における対象の文字列のインデックス用
                    int ij = i;
                    for( j = 0; j < targetStrLen; j++ ) {
                    	// リング状の文字列のインデックスを超えないように剰余演算
                        ij = ( i+j ) % ringStrLen;
                        // 文字が一致しない場合、リング状の文字列の次の文字に進めるため処理を抜ける
                        if( targetStr.charAt( j ) != ringStr.charAt( ij ) ) {
                            break;
                        }
                    }
                }
                // 対象の文字列が見つかった場合、処理を抜ける
                if( targetStrLen == j ) { break; }
            }

            // 対象の文字列が見つかった場合、j = 0 にリセットされないので、
            if( targetStrLen == j ) {
                System.out.println( "Yes" );            
            } else {
                System.out.println( "No" );
            }
        } catch( IOException e ) {
            System.err.println( e );
        }

	}

} Main public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
        BufferedReader kb = new BufferedReader( new InputStreamReader( System.in ) );
        try {
            String ringStr = kb.readLine();    // リング状の文字列
            String targetStr = kb.readLine();  // 対象の文字列

            int ringStrLen = ringStr.length();     // リング状の文字列の長さ
            int targetStrLen = targetStr.length(); // 対象の文字列の長さ
            int j = 0;
            for( int i = 0; i < ringStrLen; i++ ) {
                if( targetStr.charAt( 0 ) == ringStr.charAt( i ) ) {
                	// リング状の文字列における対象の文字列のインデックス用
                    int ij = i;
                    for( j = 0; j < targetStrLen; j++ ) {
                    	// リング状の文字列のインデックスを超えないように剰余演算
                        ij = ( i+j ) % ringStrLen;
                        // 文字が一致しない場合、リング状の文字列の次の文字に進めるため処理を抜ける
                        if( targetStr.charAt( j ) != ringStr.charAt( ij ) ) {
                            break;
                        }
                    }
                }
                // 対象の文字列が見つかった場合、処理を抜ける
                if( targetStrLen == j ) { break; }
            }

            // 対象の文字列が見つかった場合、j = 0 にリセットされないので、
            if( targetStrLen == j ) {
                System.out.println( "Yes" );            
            } else {
                System.out.println( "No" );
            }
        } catch( IOException e ) {
            System.err.println( e );
        }

	} main {
		// TODO 自動生成されたメソッド・スタブ
        BufferedReader kb = new BufferedReader( new InputStreamReader( System.in ) );
        try {
            String ringStr = kb.readLine();    // リング状の文字列
            String targetStr = kb.readLine();  // 対象の文字列

            int ringStrLen = ringStr.length();     // リング状の文字列の長さ
            int targetStrLen = targetStr.length(); // 対象の文字列の長さ
            int j = 0;
            for( int i = 0; i < ringStrLen; i++ ) {
                if( targetStr.charAt( 0 ) == ringStr.charAt( i ) ) {
                	// リング状の文字列における対象の文字列のインデックス用
                    int ij = i;
                    for( j = 0; j < targetStrLen; j++ ) {
                    	// リング状の文字列のインデックスを超えないように剰余演算
                        ij = ( i+j ) % ringStrLen;
                        // 文字が一致しない場合、リング状の文字列の次の文字に進めるため処理を抜ける
                        if( targetStr.charAt( j ) != ringStr.charAt( ij ) ) {
                            break;
                        }
                    }
                }
                // 対象の文字列が見つかった場合、処理を抜ける
                if( targetStrLen == j ) { break; }
            }

            // 対象の文字列が見つかった場合、j = 0 にリセットされないので、
            if( targetStrLen == j ) {
                System.out.println( "Yes" );            
            } else {
                System.out.println( "No" );
            }
        } catch( IOException e ) {
            System.err.println( e );
        }

	} BufferedReader kb = new BufferedReader( new InputStreamReader( System.in ) ); kb new BufferedReader( new InputStreamReader( System.in ) ) try {
            String ringStr = kb.readLine();    // リング状の文字列
            String targetStr = kb.readLine();  // 対象の文字列

            int ringStrLen = ringStr.length();     // リング状の文字列の長さ
            int targetStrLen = targetStr.length(); // 対象の文字列の長さ
            int j = 0;
            for( int i = 0; i < ringStrLen; i++ ) {
                if( targetStr.charAt( 0 ) == ringStr.charAt( i ) ) {
                	// リング状の文字列における対象の文字列のインデックス用
                    int ij = i;
                    for( j = 0; j < targetStrLen; j++ ) {
                    	// リング状の文字列のインデックスを超えないように剰余演算
                        ij = ( i+j ) % ringStrLen;
                        // 文字が一致しない場合、リング状の文字列の次の文字に進めるため処理を抜ける
                        if( targetStr.charAt( j ) != ringStr.charAt( ij ) ) {
                            break;
                        }
                    }
                }
                // 対象の文字列が見つかった場合、処理を抜ける
                if( targetStrLen == j ) { break; }
            }

            // 対象の文字列が見つかった場合、j = 0 にリセットされないので、
            if( targetStrLen == j ) {
                System.out.println( "Yes" );            
            } else {
                System.out.println( "No" );
            }
        } catch( IOException e ) {
            System.err.println( e );
        } catch( IOException e ) {
            System.err.println( e );
        } IOException e {
            System.err.println( e );
        } System.err.println( e ) System.err.println System.err System System.err e {
            String ringStr = kb.readLine();    // リング状の文字列
            String targetStr = kb.readLine();  // 対象の文字列

            int ringStrLen = ringStr.length();     // リング状の文字列の長さ
            int targetStrLen = targetStr.length(); // 対象の文字列の長さ
            int j = 0;
            for( int i = 0; i < ringStrLen; i++ ) {
                if( targetStr.charAt( 0 ) == ringStr.charAt( i ) ) {
                	// リング状の文字列における対象の文字列のインデックス用
                    int ij = i;
                    for( j = 0; j < targetStrLen; j++ ) {
                    	// リング状の文字列のインデックスを超えないように剰余演算
                        ij = ( i+j ) % ringStrLen;
                        // 文字が一致しない場合、リング状の文字列の次の文字に進めるため処理を抜ける
                        if( targetStr.charAt( j ) != ringStr.charAt( ij ) ) {
                            break;
                        }
                    }
                }
                // 対象の文字列が見つかった場合、処理を抜ける
                if( targetStrLen == j ) { break; }
            }

            // 対象の文字列が見つかった場合、j = 0 にリセットされないので、
            if( targetStrLen == j ) {
                System.out.println( "Yes" );            
            } else {
                System.out.println( "No" );
            }
        } String ringStr = kb.readLine(); ringStr kb.readLine() kb.readLine kb String targetStr = kb.readLine(); targetStr kb.readLine() kb.readLine kb int ringStrLen = ringStr.length(); ringStrLen ringStr.length() ringStr.length ringStr int targetStrLen = targetStr.length(); targetStrLen targetStr.length() targetStr.length targetStr int j = 0; j 0 for( int i = 0; i < ringStrLen; i++ ) {
                if( targetStr.charAt( 0 ) == ringStr.charAt( i ) ) {
                	// リング状の文字列における対象の文字列のインデックス用
                    int ij = i;
                    for( j = 0; j < targetStrLen; j++ ) {
                    	// リング状の文字列のインデックスを超えないように剰余演算
                        ij = ( i+j ) % ringStrLen;
                        // 文字が一致しない場合、リング状の文字列の次の文字に進めるため処理を抜ける
                        if( targetStr.charAt( j ) != ringStr.charAt( ij ) ) {
                            break;
                        }
                    }
                }
                // 対象の文字列が見つかった場合、処理を抜ける
                if( targetStrLen == j ) { break; }
            } int i = 0; int i = 0; i 0 i < ringStrLen i ringStrLen i++ i++ i {
                if( targetStr.charAt( 0 ) == ringStr.charAt( i ) ) {
                	// リング状の文字列における対象の文字列のインデックス用
                    int ij = i;
                    for( j = 0; j < targetStrLen; j++ ) {
                    	// リング状の文字列のインデックスを超えないように剰余演算
                        ij = ( i+j ) % ringStrLen;
                        // 文字が一致しない場合、リング状の文字列の次の文字に進めるため処理を抜ける
                        if( targetStr.charAt( j ) != ringStr.charAt( ij ) ) {
                            break;
                        }
                    }
                }
                // 対象の文字列が見つかった場合、処理を抜ける
                if( targetStrLen == j ) { break; }
            } {
                if( targetStr.charAt( 0 ) == ringStr.charAt( i ) ) {
                	// リング状の文字列における対象の文字列のインデックス用
                    int ij = i;
                    for( j = 0; j < targetStrLen; j++ ) {
                    	// リング状の文字列のインデックスを超えないように剰余演算
                        ij = ( i+j ) % ringStrLen;
                        // 文字が一致しない場合、リング状の文字列の次の文字に進めるため処理を抜ける
                        if( targetStr.charAt( j ) != ringStr.charAt( ij ) ) {
                            break;
                        }
                    }
                }
                // 対象の文字列が見つかった場合、処理を抜ける
                if( targetStrLen == j ) { break; }
            } if( targetStr.charAt( 0 ) == ringStr.charAt( i ) ) {
                	// リング状の文字列における対象の文字列のインデックス用
                    int ij = i;
                    for( j = 0; j < targetStrLen; j++ ) {
                    	// リング状の文字列のインデックスを超えないように剰余演算
                        ij = ( i+j ) % ringStrLen;
                        // 文字が一致しない場合、リング状の文字列の次の文字に進めるため処理を抜ける
                        if( targetStr.charAt( j ) != ringStr.charAt( ij ) ) {
                            break;
                        }
                    }
                } targetStr.charAt( 0 ) == ringStr.charAt( i ) targetStr.charAt( 0 ) targetStr.charAt targetStr 0 ringStr.charAt( i ) ringStr.charAt ringStr i {
                	// リング状の文字列における対象の文字列のインデックス用
                    int ij = i;
                    for( j = 0; j < targetStrLen; j++ ) {
                    	// リング状の文字列のインデックスを超えないように剰余演算
                        ij = ( i+j ) % ringStrLen;
                        // 文字が一致しない場合、リング状の文字列の次の文字に進めるため処理を抜ける
                        if( targetStr.charAt( j ) != ringStr.charAt( ij ) ) {
                            break;
                        }
                    }
                } int ij = i; ij i for( j = 0; j < targetStrLen; j++ ) {
                    	// リング状の文字列のインデックスを超えないように剰余演算
                        ij = ( i+j ) % ringStrLen;
                        // 文字が一致しない場合、リング状の文字列の次の文字に進めるため処理を抜ける
                        if( targetStr.charAt( j ) != ringStr.charAt( ij ) ) {
                            break;
                        }
                    } j = 0; j = 0 j 0 j < targetStrLen j targetStrLen j++ j++ j {
                    	// リング状の文字列のインデックスを超えないように剰余演算
                        ij = ( i+j ) % ringStrLen;
                        // 文字が一致しない場合、リング状の文字列の次の文字に進めるため処理を抜ける
                        if( targetStr.charAt( j ) != ringStr.charAt( ij ) ) {
                            break;
                        }
                    } {
                    	// リング状の文字列のインデックスを超えないように剰余演算
                        ij = ( i+j ) % ringStrLen;
                        // 文字が一致しない場合、リング状の文字列の次の文字に進めるため処理を抜ける
                        if( targetStr.charAt( j ) != ringStr.charAt( ij ) ) {
                            break;
                        }
                    } ij = ( i+j ) % ringStrLen ij ( i+j ) % ringStrLen ( i+j ) i j ringStrLen if( targetStr.charAt( j ) != ringStr.charAt( ij ) ) {
                            break;
                        } targetStr.charAt( j ) != ringStr.charAt( ij ) targetStr.charAt( j ) targetStr.charAt targetStr j ringStr.charAt( ij ) ringStr.charAt ringStr ij {
                            break;
                        } break; if( targetStrLen == j ) { break; } targetStrLen == j targetStrLen j { break; } break; if( targetStrLen == j ) {
                System.out.println( "Yes" );            
            } else {
                System.out.println( "No" );
            } targetStrLen == j targetStrLen j {
                System.out.println( "Yes" );            
            } System.out.println( "Yes" ) System.out.println System.out System System.out "Yes" {
                System.out.println( "No" );
            } System.out.println( "No" ) System.out.println System.out System System.out "No" String[] args args public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
        BufferedReader kb = new BufferedReader( new InputStreamReader( System.in ) );
        try {
            String ringStr = kb.readLine();    // リング状の文字列
            String targetStr = kb.readLine();  // 対象の文字列

            int ringStrLen = ringStr.length();     // リング状の文字列の長さ
            int targetStrLen = targetStr.length(); // 対象の文字列の長さ
            int j = 0;
            for( int i = 0; i < ringStrLen; i++ ) {
                if( targetStr.charAt( 0 ) == ringStr.charAt( i ) ) {
                	// リング状の文字列における対象の文字列のインデックス用
                    int ij = i;
                    for( j = 0; j < targetStrLen; j++ ) {
                    	// リング状の文字列のインデックスを超えないように剰余演算
                        ij = ( i+j ) % ringStrLen;
                        // 文字が一致しない場合、リング状の文字列の次の文字に進めるため処理を抜ける
                        if( targetStr.charAt( j ) != ringStr.charAt( ij ) ) {
                            break;
                        }
                    }
                }
                // 対象の文字列が見つかった場合、処理を抜ける
                if( targetStrLen == j ) { break; }
            }

            // 対象の文字列が見つかった場合、j = 0 にリセットされないので、
            if( targetStrLen == j ) {
                System.out.println( "Yes" );            
            } else {
                System.out.println( "No" );
            }
        } catch( IOException e ) {
            System.err.println( e );
        }

	}

} public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
        BufferedReader kb = new BufferedReader( new InputStreamReader( System.in ) );
        try {
            String ringStr = kb.readLine();    // リング状の文字列
            String targetStr = kb.readLine();  // 対象の文字列

            int ringStrLen = ringStr.length();     // リング状の文字列の長さ
            int targetStrLen = targetStr.length(); // 対象の文字列の長さ
            int j = 0;
            for( int i = 0; i < ringStrLen; i++ ) {
                if( targetStr.charAt( 0 ) == ringStr.charAt( i ) ) {
                	// リング状の文字列における対象の文字列のインデックス用
                    int ij = i;
                    for( j = 0; j < targetStrLen; j++ ) {
                    	// リング状の文字列のインデックスを超えないように剰余演算
                        ij = ( i+j ) % ringStrLen;
                        // 文字が一致しない場合、リング状の文字列の次の文字に進めるため処理を抜ける
                        if( targetStr.charAt( j ) != ringStr.charAt( ij ) ) {
                            break;
                        }
                    }
                }
                // 対象の文字列が見つかった場合、処理を抜ける
                if( targetStrLen == j ) { break; }
            }

            // 対象の文字列が見つかった場合、j = 0 にリセットされないので、
            if( targetStrLen == j ) {
                System.out.println( "Yes" );            
            } else {
                System.out.println( "No" );
            }
        } catch( IOException e ) {
            System.err.println( e );
        }

	}

} Main
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
        BufferedReader kb = new BufferedReader( new InputStreamReader( System.in ) );
        try {
            String ringStr = kb.readLine();    // リング状の文字列
            String targetStr = kb.readLine();  // 対象の文字列

            int ringStrLen = ringStr.length();     // リング状の文字列の長さ
            int targetStrLen = targetStr.length(); // 対象の文字列の長さ
            int j = 0;
            for( int i = 0; i < ringStrLen; i++ ) {
                if( targetStr.charAt( 0 ) == ringStr.charAt( i ) ) {
                	// リング状の文字列における対象の文字列のインデックス用
                    int ij = i;
                    for( j = 0; j < targetStrLen; j++ ) {
                    	// リング状の文字列のインデックスを超えないように剰余演算
                        ij = ( i+j ) % ringStrLen;
                        // 文字が一致しない場合、リング状の文字列の次の文字に進めるため処理を抜ける
                        if( targetStr.charAt( j ) != ringStr.charAt( ij ) ) {
                            break;
                        }
                    }
                }
                // 対象の文字列が見つかった場合、処理を抜ける
                if( targetStrLen == j ) { break; }
            }

            // 対象の文字列が見つかった場合、j = 0 にリセットされないので、
            if( targetStrLen == j ) {
                System.out.println( "Yes" );            
            } else {
                System.out.println( "No" );
            }
        } catch( IOException e ) {
            System.err.println( e );
        }

	}

}

