/* -*- coding: utf-8 -*- * * 3030.cc: No.3030 Kruskal-Katona - yukicoder */ #include #include #include using namespace std; /* typedef */ using ll = long long; using vi = vector; /* main */ int main() { int n, i; scanf("%d%d", &n, &i); vi v; while (n > 0) { // x+1_C_k = x_C_k * (x+1) / (x-k+1) ll c = 1; int x = i; while (c * (x + 1) / (x - i + 1) <= n) { c = c * (x + 1) / (x - i + 1); x++; } n -= c; i--; v.push_back(x); } for (auto x: v) printf("%d ", x); putchar('\n'); return 0; }