#include <iostream>
#include <cmath>
#include <algorithm>
#define ll long long
#define MOD 35242346
using namespace std;
typedef struct point {
ll x, y;
};
ll powMod(ll base, ll n, ll mod) {
if (base % mod == 0) return 0;
if (n == 1) return base % mod;
if (n % 2 == 0) return (powMod(base, n / 2, mod) * powMod(base, n / 2, mod)) % mod;
if (n % 2 != 0) return (powMod(base, n - 1, mod) * powMod(base, 1, mod)) % mod;
}
ll gcd(ll a, ll b) {
if (a == 0) return b;
if (b == 0) return a;
if (a >= b) return gcd(a % b, b);
if (a < b) return gcd(a, b % a);
}
int main()
{
ll sum = 1;
ll n, m;
cin >> n >> m;
for (int i = 2;i <= 100;i++) {
sum = (sum + (i - 1) * powMod(i, n, m)) % MOD;
}
cout << sum;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgTU9EIDM1MjQyMzQ2CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0eXBlZGVmIHN0cnVjdCBwb2ludCB7CiAgICBsbCB4LCB5Owp9OwoKbGwgcG93TW9kKGxsIGJhc2UsIGxsIG4sIGxsIG1vZCkgewogICAgaWYgKGJhc2UgJSBtb2QgPT0gMCkgcmV0dXJuIDA7CiAgICBpZiAobiA9PSAxKSByZXR1cm4gYmFzZSAlIG1vZDsKICAgIGlmIChuICUgMiA9PSAwKSByZXR1cm4gKHBvd01vZChiYXNlLCBuIC8gMiwgbW9kKSAqIHBvd01vZChiYXNlLCBuIC8gMiwgbW9kKSkgJSBtb2Q7CiAgICBpZiAobiAlIDIgIT0gMCkgcmV0dXJuIChwb3dNb2QoYmFzZSwgbiAtIDEsIG1vZCkgKiBwb3dNb2QoYmFzZSwgMSwgbW9kKSkgJSBtb2Q7Cn0KCmxsIGdjZChsbCBhLCBsbCBiKSB7CiAgICBpZiAoYSA9PSAwKSByZXR1cm4gYjsKICAgIGlmIChiID09IDApIHJldHVybiBhOwogICAgaWYgKGEgPj0gYikgcmV0dXJuIGdjZChhICUgYiwgYik7CiAgICBpZiAoYSA8IGIpIHJldHVybiBnY2QoYSwgYiAlIGEpOwp9CgppbnQgbWFpbigpCnsKICAgIGxsIHN1bSA9IDE7CiAgICBsbCBuLCBtOwogICAgY2luID4+IG4gPj4gbTsKICAgIGZvciAoaW50IGkgPSAyO2kgPD0gMTAwO2krKykgewogICAgICAgIHN1bSA9IChzdW0gKyAoaSAtIDEpICogcG93TW9kKGksIG4sIG0pKSAlIE1PRDsKICAgIH0KCiAgICBjb3V0IDw8IHN1bTsKCiAgICByZXR1cm4gMDsKfQ==