// PR Bab 17, soal 4 -- pembahasan. // // Setiap jalur berisi (b-1) langkah bawah dan (k-1) langkah kanan. // Jawabannya tinggal memilih posisi langkah bawah: // C((b-1) + (k-1), b-1) #include using namespace std; const long long MOD = 1000000007; const int MAKS = 1000005; long long fakt[MAKS]; long long pangkat_mod(long long a, long long b, long long m) { long long hasil = 1; a %= m; while (b > 0) { if (b % 2 == 1) hasil = hasil * a % m; a = a * a % m; b /= 2; } return hasil; } long long kombinasi(int n, int r) { if (r < 0 || r > n) return 0; long long bawah = fakt[r] * fakt[n - r] % MOD; return fakt[n] * pangkat_mod(bawah, MOD - 2, MOD) % MOD; } int main() { long long b, k; cin >> b >> k; fakt[0] = 1; for (int i = 1; i < MAKS; i++) fakt[i] = fakt[i - 1] * i % MOD; cout << kombinasi((int)(b - 1 + k - 1), (int)(b - 1)) << "\n"; return 0; }