#include using namespace std; template struct StaticCombination { using value_type = long long; value_type table[MaxN+1][MaxR+1]; constexpr StaticCombination() :table() { for (int n = 0; n < MaxN; ++n) { table[n][0] = 1; for (int r = 0; r <= n && r < MaxR; ++r) table[n + 1][r + 1] = (table[n][r + 1] + table[n][r]) % Mod; } } constexpr inline value_type operator()(int n, int r) const { return table[n][r]; } }; //constexpr StaticCombination<2500, 2500, 1000000007ll> sc; StaticCombination<2500, 2500, 1000000007ll> sc; int main(){ cerr << sc(2500,2500) << endl; cout << 0 << endl; return 0; }