Pagini recente » Cod sursa (job #2968010) | Cod sursa (job #1187610) | Cod sursa (job #2980788) | Cod sursa (job #1240408) | Cod sursa (job #3226644)
#include <fstream>
using namespace std;
ifstream cin("sandokan.in");
ofstream cout("sandokan.out");
const int MOD = 2e6 + 3;
int n, k, answer;
int getFactorial(int n) {
int factorial = 1;
for (int index = 2; index <= n; ++index) {
factorial = ((long long)factorial * index) % MOD;
}
return factorial;
}
int fastPower(int a, int b) {
if (b == 0) {
return 1;
}
if (b % 2 == 1) {
return ((long long)a * fastPower(a, b - 1)) % MOD;
}
int power = fastPower(a, b / 2);
return ((long long)power * power) % MOD;
}
void read() {
cin >> n >> k;
}
void solve() {
k = (n - 1) % (k - 1);
answer = getFactorial(n - 1);
answer = ((long long)answer * fastPower(getFactorial(k), MOD - 2)) % MOD;
answer = ((long long)answer * fastPower(getFactorial(n - 1 - k), MOD - 2)) % MOD;
}
void display() {
cout << answer;
}
int main() {
read();
solve();
display();
return 0;
}