/**
 *　　　　　　  　　┏┓　　 　┏┓
 * 　　　　　  　　┏┛┗━━━━━━━┛┗━━━┓
 * 　　　　　  　　┃　　　　　　　┃ 　
 * 　　　　　  　　┃　　　━　　 　┃
 * 　　　　　  　　┃　＞　　　＜　┃
 * 　　　　　  　　┃　　　　　　　┃
 * 　　　　　  　　┃...　⌒　... 　┃
 * 　　　　　　  　┃              ┃
 * 　　　　　　  　┗━┓          ┏━┛
 * 　　　　　　　　　┃          ┃　Code is far away from bug with the animal protecting　　　　　　　　　　
 * 　　　　　　　　　┃          ┃   神兽保佑,代码无bug
 * 　　　　　　　　　┃          ┃　　　　　　　　　　　
 * 　　　　　　　　　┃          ┃  　　　　　　
 * 　　　　　　　　　┃          ┃
 * 　　　　　　　　　┃          ┃　　　　　　　　　　　
 * 　　　　　　　　　┃          ┗━━━┓
 * 　　　　　　　　　┃              ┣┓
 * 　　　　　　　　　┃              ┏┛
 * 　　　　　　　　　┗┓┓┏━━━━━━━━┳┓┏┛
 * 　　　　　　　　　　┃┫┫       ┃┫┫
 * 　　　　　　　　　　┗┻┛       ┗┻┛
 */ 
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<queue>
#include<map>
#include<stack>
#include<cmath>
#include<set>
#include<bitset>
#include<complex>
#include<assert.h>
#include<list>
#define inc(i,l,r) for(int i=l;i<=r;i++)
#define dec(i,l,r) for(int i=l;i>=r;i--)
#define link(x) for(edge *j=h[x];j;j=j->next)
#define mem(a) memset(a,0,sizeof(a))
#define ll long long
#define eps 1e-8
#define succ(x) (1<<x)
#define mid (x+y>>1)
#define lowbit(x) (x&(-x))
#define sqr(x) (1ll*(x)*(x))
#define NM 405
#define nm 200005
using namespace std;
const double pi=acos(-1);
ll read(){
    ll x=0,f=1;char ch=getchar();
    while(!isdigit(ch)){if(ch=='-')f=-1;ch=getchar();}
    while(isdigit(ch))x=x*10+ch-'0',ch=getchar();
    return f*x;
}
 


int n;
ll inf,d[3][NM][NM][2],ans;


int main(){
    n=read();inf=read();
    d[1][1][1][0]=1;
    inc(i,2,n){
	inc(j,1,i)inc(k,1,j)inc(v,0,1)d[i%3][j][k][v]=0;
	inc(j,1,i){
	    inc(k,1,j){
		d[i%3][j][k][1]=(d[i%3][j][k-1][1]+d[(i-1)%3][j-1][k-1][0]+d[(i-1)%3][j-1][k-1][1])%inf;
	    }
	    ll t=0;
	    inc(k,1,j-1)t+=d[(i-2)%3][j-1][k][0]+d[(i-2)%3][j-1][k][1],t%=inf;
	    d[i%3][j][j+1][0]=t;
	    dec(k,j,1){
		d[i%3][j][k][0]=(d[i%3][j][k+1][0]+d[(i-1)%3][j-1][k][0])%inf;
	    }
	    d[i%3][j][j+1][0]=0;
	}
    }
    inc(j,1,n)inc(k,1,j)inc(v,0,1)ans+=d[n%3][j][k][v],ans%=inf;
    printf("%lld\n",ans);
    return 0;
}
