Pagini recente » Cod sursa (job #2350876) | Cod sursa (job #2809831) | Cod sursa (job #828919) | Cod sursa (job #2904311) | Cod sursa (job #3188974)
#include <bits/stdc++.h>
using namespace std;
const long long max_size = 5e3 + 20, mod = 2e6 + 3;
long long fact[max_size];
long long lgput (long long baza, long long e)
{
long long ans = 1;
while (e > 0)
{
if (e % 2 == 1)
{
ans = (ans * baza) % mod;
}
baza = (baza * baza) % mod;
e /= 2;
}
return ans;
}
long long comb (long long n, long long k)
{
long long ans = (fact[n] * lgput(fact[k], mod - 2)) % mod;
ans = (ans * lgput(fact[n - k], mod - 2)) % mod;
return ans;
}
void solve ()
{
long long n, k;
cin >> n >> k;
fact[0] = 1;
for (long long i = 1; i <= n; i++)
{
fact[i] = (fact[i - 1] * i) % mod;
}
long long r = (n - 1) % (k - 1) + 1;
cout << comb(n - 1, r - 1);
//cout << '\n';
}
signed main ()
{
#ifdef LOCAL
freopen("test.in", "r", stdin);
freopen("test.out", "w", stdout);
#else
freopen("sandokan.in", "r", stdin);
freopen("sandokan.out", "w", stdout);
#endif // LOCAL
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
long long t;
//cin >> t;
t = 1;
while (t--)
{
solve();
}
return 0;
}