#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
class node{
public:
int data ;
node*left;
node*right;
node( int d){
data = d;
left = NULL;
right = NULL;
}
};
node*temp = NULL;
node*buildtree(){
string s;cin>>s;
if(s=="false"){
return NULL;
}
if(s=="true"){
buildtree();
}
if(s!= "true"&&s!= "false"){
node*root = new node(stoi(s));
root->left = buildtree();
root->right = buildtree();
temp = root;
}
return temp;
}
vector<vector<int>>ans;
vector<int>res;
void rootToLeaf(node* root, int sum, int cs){
if(root == NULL)return;
res.push_back(root->data);
cs += root->data;
if(root->left == NULL and root->right == NULL and cs == sum){
ans.push_back(res);
res.pop_back();
return;
}
rootToLeaf(root->left,sum,cs);
rootToLeaf(root->right,sum,cs);
res.pop_back();
}
int main() {
node*root = buildtree();
int k;
cin >>k;
int curSum = 0;
rootToLeaf(root,k,curSum);
for(auto v : ans){
for(auto x : v)cout<<x<<" ";
cout<<endl;
}
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHN0cmluZz4KI2luY2x1ZGU8dmVjdG9yPgojaW5jbHVkZTxhbGdvcml0aG0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpjbGFzcyBub2RlewogICAgcHVibGljOgogICAgaW50IGRhdGEgOwogICAgbm9kZSpsZWZ0OwogICAgbm9kZSpyaWdodDsKCiAgICBub2RlKCBpbnQgZCl7CiAgICAgICAgZGF0YSA9IGQ7CiAgICAgICAgbGVmdCA9IE5VTEw7CiAgICAgICAgcmlnaHQgPSBOVUxMOwogICAgfQp9OwoKbm9kZSp0ZW1wID0gTlVMTDsKbm9kZSpidWlsZHRyZWUoKXsKCXN0cmluZyBzO2Npbj4+czsKCWlmKHM9PSJmYWxzZSIpewoJCXJldHVybiBOVUxMOwoJfQoJaWYocz09InRydWUiKXsKCQlidWlsZHRyZWUoKTsKCX0KCWlmKHMhPSAidHJ1ZSImJnMhPSAiZmFsc2UiKXsKCQlub2RlKnJvb3QgPSBuZXcgbm9kZShzdG9pKHMpKTsKCQlyb290LT5sZWZ0ID0gYnVpbGR0cmVlKCk7CgkJcm9vdC0+cmlnaHQgPSBidWlsZHRyZWUoKTsKCQl0ZW1wID0gcm9vdDsKCX0KCXJldHVybiB0ZW1wOwp9Cgp2ZWN0b3I8dmVjdG9yPGludD4+YW5zOwp2ZWN0b3I8aW50PnJlczsKCnZvaWQgcm9vdFRvTGVhZihub2RlKiByb290LCBpbnQgc3VtLCBpbnQgY3MpewoJaWYocm9vdCA9PSBOVUxMKXJldHVybjsKCglyZXMucHVzaF9iYWNrKHJvb3QtPmRhdGEpOwoJY3MgKz0gcm9vdC0+ZGF0YTsKCglpZihyb290LT5sZWZ0ID09IE5VTEwgYW5kIHJvb3QtPnJpZ2h0ID09IE5VTEwgYW5kIGNzID09IHN1bSl7CgkJYW5zLnB1c2hfYmFjayhyZXMpOwoJCXJlcy5wb3BfYmFjaygpOwoJCXJldHVybjsKCX0KCglyb290VG9MZWFmKHJvb3QtPmxlZnQsc3VtLGNzKTsKCXJvb3RUb0xlYWYocm9vdC0+cmlnaHQsc3VtLGNzKTsKCXJlcy5wb3BfYmFjaygpOwp9CgoKaW50IG1haW4oKSB7Cglub2RlKnJvb3QgPSBidWlsZHRyZWUoKTsKCWludCBrOwoJY2luID4+azsKCWludCBjdXJTdW0gPSAwOwoKCXJvb3RUb0xlYWYocm9vdCxrLGN1clN1bSk7CgkKCWZvcihhdXRvIHYgOiBhbnMpewoJCWZvcihhdXRvIHggOiB2KWNvdXQ8PHg8PCIgIjsKCQljb3V0PDxlbmRsOwoJfQoJcmV0dXJuIDA7Cn0=