C. Максим ба матриц

хугацааны хязгаарлалт 2 секунд

санах ойн хязгаарлалт 256 мегабайт

оролт стандарт оролт

гаралт стандарт гаралт

Максим онцгой хэлбэрээр матрицыг бөглөх дуртай. $(m + 1) × (m + 1)$ хэмжээтэй матрицыг бөглөх псевдо код өгөгдөв:

Матрицын $m+1$ дугаартай мөрд байгаа тоонуудын нийлбэр нь $t$-тэй тэнцүү байх $m$ $(1 ≤ m ≤ n)$ тоо хэд байгааг тоолно уу гэж Максим хүсч байна.

($x$ xor $y$) үйлдэл нь $x$ ба $y$ тоонуудыг битийн exclusing $or$ үйлдэл хийнэ гэсэн үг юм. Уг үйлдэл нь одоо үеийн бүх програмчлалын хэлнүүдэд байдаг. Жишээлбэл, $C++$ болон $Java$ хэлүүдэд "^" тэмдэглэгээгээр, $Pascal$ хэлэнд "xor" тэмдэглэгээгээр илэрхийлэгдэнэ.

Оролт

$n$ ба $t$ $(1 ≤ n, t ≤ 10^{12}, t ≤ n + 1)$ агуулсан мөр.

С++ хэлэнд 64 битийн бүхэл тоог унших, бичихдээ %lld тодорхойлогчийг битгий ашиглаарай. Харин %I64d тодорхойлогчийг эсвэл cin, cout урсгалуудыг ашиглах нь дээр байдаг.

Гаралт

Бодлогын хариу болох бүхэл тоог хэвлэ.

Орчуулсан: Солонго

Жишээ тэстүүд

Оролт
1 1
Гаралт
1
Оролт
3 2
Гаралт
1
Оролт
3 3
Гаралт
0
Оролт
1000000000000 1048576
Гаралт
118606527258
Сэтгэгдлүүдийг ачааллаж байна...