#include <bits/stdc++.h>
#define ll long long
#define fr(i, n, d, x) for(ll i = d; i < n; i += x)
#define frr(i, n, d, x) for(ll i = d; i <= n; i += x)
#define frd(i, n, d, x) for(ll i = d; i > n; i -= x)
#define frrd(i, n, d, x) for(ll i = d; i >= n; i -= x)
#define pb push_back
#define elif else if
using namespace std;
int main(){
cin.tie(0);
cout.tie(0);
ios_base::sync_with_stdio(0);
ll n, m, ans = 0, dp[100001][10];
dp[0][0] = 0;
fr(i, 10, 1, 1)
dp[0][i] = 1;
cin >> n >> m;
fr(i, n - 1, 0, 1){
fr(j, 10, 0, 1){
dp[i][j] %= m;
if(j == 0){
fr(k, 10, 1, 1){
dp[i + 1][k] += dp[i][j];
}
}
elif(j >= 1 && j <= 4){
fr(k, 10, 0, j){
dp[i + 1][k] += dp[i][j];
}
}
elif(j >= 5 && j <= 9){
dp[i + 1][0] += dp[i][j];
dp[i + 1][j] += dp[i][j];
}
}
}
fr(i, 10, 0, 1){
ans += dp[n - 1][i];
ans %= m;
}
cout << ans % m;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgZnIoaSwgbiwgZCwgeCkgZm9yKGxsIGkgPSBkOyBpIDwgbjsgaSArPSB4KQojZGVmaW5lIGZycihpLCBuLCBkLCB4KSBmb3IobGwgaSA9IGQ7IGkgPD0gbjsgaSArPSB4KQojZGVmaW5lIGZyZChpLCBuLCBkLCB4KSBmb3IobGwgaSA9IGQ7IGkgPiBuOyBpIC09IHgpCiNkZWZpbmUgZnJyZChpLCBuLCBkLCB4KSBmb3IobGwgaSA9IGQ7IGkgPj0gbjsgaSAtPSB4KQojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIGVsaWYgZWxzZSBpZgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKXsKICAgIGNpbi50aWUoMCk7CiAgICBjb3V0LnRpZSgwKTsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CiAgICBsbCBuLCBtLCBhbnMgPSAwLCBkcFsxMDAwMDFdWzEwXTsKICAgIGRwWzBdWzBdID0gMDsKICAgIGZyKGksIDEwLCAxLCAxKQogICAgICAgIGRwWzBdW2ldID0gMTsKICAgIGNpbiA+PiBuID4+IG07CiAgICBmcihpLCBuIC0gMSwgMCwgMSl7CiAgICAgICAgZnIoaiwgMTAsIDAsIDEpewogICAgICAgICAgICBkcFtpXVtqXSAlPSBtOwogICAgICAgICAgICBpZihqID09IDApewogICAgICAgICAgICAgICAgZnIoaywgMTAsIDEsIDEpewogICAgICAgICAgICAgICAgICAgIGRwW2kgKyAxXVtrXSArPSBkcFtpXVtqXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbGlmKGogPj0gMSAmJiBqIDw9IDQpewogICAgICAgICAgICAgICAgZnIoaywgMTAsIDAsIGopewogICAgICAgICAgICAgICAgICAgIGRwW2kgKyAxXVtrXSArPSBkcFtpXVtqXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbGlmKGogPj0gNSAmJiBqIDw9IDkpewogICAgICAgICAgICAgICAgZHBbaSArIDFdWzBdICs9IGRwW2ldW2pdOwogICAgICAgICAgICAgICAgZHBbaSArIDFdW2pdICs9IGRwW2ldW2pdOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgIH0KICAgIGZyKGksIDEwLCAwLCAxKXsKICAgICAgICBhbnMgKz0gZHBbbiAtIDFdW2ldOwogICAgICAgIGFucyAlPSBtOwogICAgfQogICAgY291dCA8PCBhbnMgJSBtOwp9Cg==