#include <bits/stdc++.h>
using namespace std;
vector<int> primes;
bool is_prime[2000005]; // 最大到2e6
// 线性筛法预处理质数
void sieve(int max_n) {
memset(is_prime, true, sizeof(is_prime));
is_prime[0] = is_prime[1] = false;
for (int i = 2; i <= max_n; ++i) {
if (is_prime[i]) {
primes.push_back(i);
}
for (int p : primes) {
if (i * p > max_n) break;
is_prime[i * p] = false;
if (i % p == 0) break;
}
}
}
// 计算n!中质因子p的指数
int count_factor(int n, int p) {
int cnt = 0;
while (n) {
cnt += n / p;
n /= p;
}
return cnt;
}
// 快速幂计算a^b mod mod
long long pow_mod(long long a, long long b, long long mod) {
long long res = 1;
while (b > 0) {
if (b % 2 == 1) {
res = (res * a) % mod;
}
a = (a * a) % mod;
b /= 2;
}
return res;
}
int main() {
int n, p;
cin >> n >> p;
if (n == 0) {
cout << 1 % p << endl;
return 0;
}
}