#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef LOCAL # include "debug_print.hpp" # define debug(...) debug_print::multi_print(#__VA_ARGS__, __VA_ARGS__) #else # define debug(...) (static_cast(0)) #endif using namespace std; #define rep1(a) for(int i = 0; i < a; i++) #define rep2(i, a) for(int i = 0; i < a; i++) #define rep3(i, a, b) for(int i = a; i < b; i++) #define rep4(i, a, b, c) for(int i = a; i < b; i += c) #define overload4(a, b, c, d, e, ...) e #define rep(...) overload4(__VA_ARGS__, rep4, rep3, rep2, rep1)(__VA_ARGS__) #define rrep1(a) for(int i = (a)-1; i >= 0; i--) #define rrep2(i, a) for(int i = (a)-1; i >= 0; i--) #define rrep3(i, a, b) for(int i = (b)-1; i >= a; i--) #define rrep4(i, a, b, c) for(int i = (b)-1; i >= a; i -= c) #define rrep(...) overload4(__VA_ARGS__, rrep4, rrep3, rrep2, rrep1)(__VA_ARGS__) #define ALL(v) v.begin(), v.end() #define RALL(v) v.rbegin(), v.rend() #define UNIQUE(v) v.erase( unique(v.begin(), v.end()), v.end() ); #define pb push_back using ll = long long; using D = double; using LD = long double; using P = pair; using vi = vector; using vl = vector; template using vc = vector; template using vvc = vector>; template using vvvc = vector>; template using vvvvc = vector>; template using vvvvvc = vector>; #define vv(type, name, h, ...) \ vector> name(h, vector(__VA_ARGS__)) #define vvv(type, name, h, w, ...) \ vector>> name( \ h, vector>(w, vector(__VA_ARGS__))) #define vvvv(type, name, a, b, c, ...) \ vector>>> name( \ a, vector>>( \ b, vector>(c, vector(__VA_ARGS__)))) template using PQ = priority_queue>; template using minPQ = priority_queue, greater>; templatebool chmax(T &a, const T &b) { if (abool chmin(T &a, const T &b) { if (b ostream &operator<<(ostream &os, const pair &p) { os << p.first << " " << p.second; return os; } template istream &operator>>(istream &is, pair &p) { is >> p.first >> p.second; return is; } template ostream &operator<<(ostream &os, const vector &v) { int s = (int)v.size(); for (int i = 0; i < s; i++) os << (i ? " " : "") << v[i]; return os; } template istream &operator>>(istream &is, vector &v) { for (auto &x : v) is >> x; return is; } void in() {} template void in(T &t, U &...u) { cin >> t; in(u...); } void out() { cout << "\n"; } template void out(const T &t, const U &...u) { cout << t; if (sizeof...(u)) cout << sep; out(u...); } void outr() {} template void outr(const T &t, const U &...u) { cout << t; outr(u...); } vector v[24] = { {1}, {1,1}, {1,1,1}, {1,1,4,1}, {1,1,4,1,1}, {1,1,10,23,16,1}, {1,1,10,23,16,1,1}, {1,1,10,35,91,106,43,1}, {1,1,10,35,121,226,505,309,1}, {1,1,10,47,231,667,1688,1961,640,1}, {1,1,10,47,231,667,1688,1961,640,1,1}, {1,1,10,95,511,2352,8828,20847,26719,11336,694,1}, {1,1,10,95,511,2352,8828,20847,26719,11336,694,1,1}, {1,1,10,95,531,2592,11740,39027,87181,118886,87781,26203,1730,1}, {1,1,10,119,941,6762,37990,180819,662821,1676126,2136223,1562089,595349,98281,1}, {1,1,10,119,1001,7812,50205,298503,1426678,5314931,12998305,16990810,11428613,3589041,204831,1}, {1,1,10,119,1001,7812,50205,298503,1426678,5314931,12998305,16990810,11428613,3589041,204831,1,1}, {1,1,10,143,1321,12612,98967,706351,4519408,23098446,90446137,233499344,359830680,303875573,120897041,15574653,61864,1}, {1,1,10,143,1321,12612,98967,706351,4519408,23098446,90446137,233499344,359830680,303875573,120897041,15574653,61864,1,1}, {1,1,10,167,1851,20562,188049,1637057,12442024,81943326,429039909,1740647525,5233214351,10843887965,14088489255,9982510305,2962502213,198795808,582085,1}, {1,1,10,167,2001,23622,247899,2492121,23603800,200197566,1457497196,8592067529,39580212205,134817405451,309930637885,426337329317,295288749243,73152855670,6996250795,28282071,1}, {1,1,10,167,2001,23622,247941,2492905,23625220,200631786,1464757108,8683726163,40413510762,140147181266,332462625610,484295650621,382283766495,146218113382,38473778130,5684671181,173183578,1}, {1,1,10,167,2001,23622,247941,2492905,23625220,200631786,1464757108,8683726163,40413510762,140147181266,332462625610,484295650621,382283766495,146218113382,38473778130,5684671181,173183578,1,1}, {1,1,10,191,2511,33882,409165,4641625,50103058,496822401,4403064282,33370486316,209225931487,1051662957619,4048971290390,11244715040211,20694326612398,22228226842243,11390082915896,2186175253228,151220665303,2381965422,1643558,1}, }; // ll l = 1; // rep(n,1,25){ // vector ans; // l = lcm(l, n); // map mp; // mp[0] = 1; // rep(i,n){ // map m2; // for(auto [v,c] : mp) rep(j,1,n+1) if (v+l/j <= l) m2[v + l/j] += c; // ans.pb(m2[l]); // mp = move(m2); // } // out(ans, ","); // } int main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); ll k,n; in(k,n); out(v[n-1][k-1]); }