/* -*- coding: utf-8 -*- * * 526.cc: No.526 フィボナッチ数列の第N項をMで割った余りを求める - yukicoder */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; /* constant */ /* typedef */ typedef long long ll; typedef vector vi; typedef queue qi; typedef pair pii; /* global variables */ /* subroutines */ /* main */ int main() { int n; ll m; cin >> n >> m; ll f1 = 0, f2 = 1; for (int i = 2; i < n; i++) { ll f3 = (f1 + f2) % m; f1 = f2, f2 = f3; } printf("%lld\n", f2); return 0; }