#include<bits/stdc++.h>
#define int long long
using namespace std;
auto mread = [](){int x;scanf("%lld", &x);return x;};
int n = mread();
const int MOD = mread(), N = 205;
int f[N][N], inv[N];
int ksm(int x, int k){
int ans = 1, now = x;
while(k){
if(k & 1)
ans = ans * now % MOD;
now = now * now % MOD;
k >>= 1;
}
return ans;
}
signed main(){
for(int i = 0; i <= n; i ++)
f[0][i] = 1, inv[i] = ksm(i, MOD - 2);
for(int i = 1; i <= n; i ++){
for(int j = 1; j <= n; j ++){
for(int k = 1; k <= i; k ++){
(f[i][j] += (f[k - 1][j - 1] * inv[i] % MOD * f[i - k][j] % MOD)) %= MOD;
}
// printf("*** %lld %lld %lld\n", i, j, f[i][j]);
}
}
int ans = 0;
for(int i = 2; i <= n + 1; i ++){
(ans += (f[n - 1][i - 1] - f[n - 1][i - 2] + MOD) % MOD * (i - 1) % MOD) %= MOD;
}
printf("%lld", ans);
return 0;
}