#include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); long long N, B; if (!(cin >> N >> B)) return 0; // E[f] = (N-1)/2 (N>=1, N=1时为0也符合) // 既约表示分析: // N为奇数(含N=1) -> (N-1)/2 为整数 -> d=1 -> 恒存在 -> r = (N-1)/2 mod B // N为偶数 -> (N-1)/2 = (N-1)/2 既约分母 d=2 -> 需 gcd(2,B)=1 即 B为奇数 // 存在时 r 满足 N-1 == 2r (mod B) -> r = (N-1)*inv2 mod B, inv2=(B+1)/2 if (B == 1) { // 模1下只有0,d=1或gcd(2,1)=1恒成立 cout << 0 << "\n"; return 0; } if (N % 2 == 1) { // 奇数 long long ans = ((N - 1) / 2) % B; cout << ans << "\n"; } else { // 偶数 if (B % 2 == 0) { cout << "NaN\n"; } else { long long inv2 = (B + 1) / 2; // 2*inv2 % B == 1 long long r = (__int128)((N - 1) % B) * inv2 % B; cout << r << "\n"; } } return 0; }