// LUOGU_RID: 91728575
#include<cstdio>
#include<cstring>
int n,m,g[45];
char st[45];
long long dp[45][45][2],ans=0;
int main()
{
scanf("%d",&n);
scanf("%s",st+1);
m=std::strlen(st+1);
for (int i=1;i<=m;i++)
{
int flag=1,x=1,y=i;
while (y<=m){if (st[x]!=st[y]) flag=0;++x,++y;}
g[i-1]=flag;
}
dp[1][1][1]=1;
for (int i=2;i<=n;i++)
for (int x=1;x<i;x++)
for (int o=0;o<=1;o++)
{
if ((i-x>=m||g[i-x])&&(n+1-i>=m||g[n+1-i])) dp[i][i][1-o]=dp[i][i][1-o]+dp[i-1][x][o];
dp[i][x][o]=dp[i][x][o]+(1+(x+m<=i))*dp[i-1][x][o];
}
for (int x=1;x<=n;x++) ans=ans+(dp[n][x][1]-dp[n][x][0])*(n+1-x);
printf("%lld\n",ans);
return 0;
}
162. Find Peak Element | 1529A - Eshag Loves Big Arrays |
19. Remove Nth Node From End of List | 925. Long Pressed Name |
1051. Height Checker | 695. Max Area of Island |
402. Remove K Digits | 97. Interleaving String |
543. Diameter of Binary Tree | 124. Binary Tree Maximum Path Sum |
1465. Maximum Area of a Piece of Cake After Horizontal and Vertical Cuts | 501A - Contest |
160A- Twins | 752. Open the Lock |
1535A - Fair Playoff | 1538F - Interesting Function |
1920. Build Array from Permutation | 494. Target Sum |
797. All Paths From Source to Target | 1547B - Alphabetical Strings |
1550A - Find The Array | 118B - Present from Lena |
27A - Next Test | 785. Is Graph Bipartite |
90. Subsets II | 1560A - Dislike of Threes |
36. Valid Sudoku | 557. Reverse Words in a String III |
566. Reshape the Matrix | 167. Two Sum II - Input array is sorted |