#include using namespace std; long long fact(int n){ long long ans = 1; for (int i = 1; i <= n; i++){ ans *= i; } return ans; } int main(){ long long N; int S; cin >> N >> S; vector p; vector r; for (int i = 0; i < S; i++){ r.push_back(i); } for (int i = 0; i < S; i++){ int q = N / fact(S - 1 - i); p.push_back(r[q]); N %= fact(S - 1 - i); r.erase(r.begin() + q); } vector pp(S); for (int i = 0; i < S; i++){ pp[p[i]] = i; } vector rr; long long ans = 0; for (int i = 0; i < S; i++){ int cnt = pp[i]; for (int j : rr){ if (j < pp[i]){ cnt--; } } ans += cnt * fact(S - 1 - i); rr.push_back(pp[i]); } cout << ans << endl; }