#include <iostream>
#include <vector>
using namespace std;
void generateCombinations(vector<int>& nums, vector<int>& combination, int idx, vector<vector<int>>& result) {
result.push_back(combination);
for (int i = idx; i < nums.size(); i++) {
combination.push_back(nums[i]);
generateCombinations(nums, combination, i + 1, result);
combination.pop_back();
}
}
vector<vector<int>> combine(vector<int>& nums, int k) {
vector<vector<int>> result;
vector<int> combination;
generateCombinations(nums, combination, 0, result);
return result;
}
int main() {
vector<int> nums = {1, 2, 3};
int k = 2;
vector<vector<int>> result = combine(nums, k);
for (auto vec : result) {
for (int num : vec) {
cout << num << " ";
}
cout << endl;
}
return 0;
}