#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<map>
#include<string>
using namespace std;
int getmin(char *a,int n)
{
int i=0,j=1,k=0;
int t;
//从i开始k长度和从j开始k长度的字符串作比较
while(i<n&&j<n&&k<n)
{
t=a[(i+k)%n]-a[(j+k)%n];
//t用来计算相应位置上那个字符字典序哪个大
if(!t) //相等就下一个
{
k++;
}
else
{
if(t>0){i+=k+1;}
//i位置大,最大表示法j+=k+1
else{j+=k+1;}
//j位置大,最大表示法i+=k+1
if(i==j){j++;}
k=0;
}
}
if(i<j){return i;}
else {return j;}
}
int main()
{
int n;
char a[500005];
scanf("%d",&n);
scanf("%s",a);
int k=getmin(a,n);
if(k==0)
{
printf("Yes\n");
}
else
{
printf("No\n");
}
return 0;
}
cf丑数