voiddfs(int u, int dx) { if (dx > m) return; if (dx == m) { for (int i = 0; i < u; ++ i) if (st[i]) printf("%d ", a[i]); puts(""); return; } if (u >= n) return;
int k = u; while (k < n && a[k] == a[u]) st[k ++ ] = true, ++ dx;
dfs(k, dx);
for (int i = k - 1; i >= u; -- i) { st[i] = false; dfs(k, -- dx); }
}
intmain() { cin >> n >> m; for (int i = 0; i <= n; ++ i) cin >> a[i];