#include <bits/stdc++.h>
using namespace std;
 
void solve(vector<string>& ans, vector<string> vs, int n, int k, string t) {
	if (k == n) {
		ans.push_back(t);
		return;
	}
	for (auto it: vs[k]) {
		t += it;
		solve(ans, vs, n, k+1, t);
		t.pop_back();
	}
}
 
int main() {
	// your code goes here
	string s = "{a,b,c}d{e,f}g{h,i,j}";
	bool flag = false;
	vector<string> vs;
	int k = 0;
	for (int i=0;i<s.length();i++) {
		if (s[i] == '{') {
			flag = true;
			vs.push_back("");
			continue;
		}
		if (s[i] == '}' && flag) {
			flag = false;
			k++;
			continue;
		}
		if (s[i] == ',') { continue; }
		if (flag) {
			vs[k] += s[i];
		} else {
			string tmp = "";
			tmp += s[i];
			vs.push_back(tmp);
			k++;
		}
	}
 
	for (auto it: vs) {
		cout<<it<<endl;
	}
	cout<<endl<<endl;
 
	vector<string> ans;
	solve(ans, vs, k, 0, "");
	for (auto it: ans) {
		cout<<it<<endl;
	}
	return 0;
}
				I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIHNvbHZlKHZlY3RvcjxzdHJpbmc+JiBhbnMsIHZlY3RvcjxzdHJpbmc+IHZzLCBpbnQgbiwgaW50IGssIHN0cmluZyB0KSB7CglpZiAoayA9PSBuKSB7CgkJYW5zLnB1c2hfYmFjayh0KTsKCQlyZXR1cm47Cgl9Cglmb3IgKGF1dG8gaXQ6IHZzW2tdKSB7CgkJdCArPSBpdDsKCQlzb2x2ZShhbnMsIHZzLCBuLCBrKzEsIHQpOwoJCXQucG9wX2JhY2soKTsKCX0KfQoKaW50IG1haW4oKSB7CgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCglzdHJpbmcgcyA9ICJ7YSxiLGN9ZHtlLGZ9Z3toLGksan0iOwoJYm9vbCBmbGFnID0gZmFsc2U7Cgl2ZWN0b3I8c3RyaW5nPiB2czsKCWludCBrID0gMDsKCWZvciAoaW50IGk9MDtpPHMubGVuZ3RoKCk7aSsrKSB7CgkJaWYgKHNbaV0gPT0gJ3snKSB7CgkJCWZsYWcgPSB0cnVlOwoJCQl2cy5wdXNoX2JhY2soIiIpOwoJCQljb250aW51ZTsKCQl9CgkJaWYgKHNbaV0gPT0gJ30nICYmIGZsYWcpIHsKCQkJZmxhZyA9IGZhbHNlOwoJCQlrKys7CgkJCWNvbnRpbnVlOwoJCX0KCQlpZiAoc1tpXSA9PSAnLCcpIHsgY29udGludWU7IH0KCQlpZiAoZmxhZykgewoJCQl2c1trXSArPSBzW2ldOwoJCX0gZWxzZSB7CgkJCXN0cmluZyB0bXAgPSAiIjsKCQkJdG1wICs9IHNbaV07CgkJCXZzLnB1c2hfYmFjayh0bXApOwoJCQlrKys7CgkJfQoJfQoJCglmb3IgKGF1dG8gaXQ6IHZzKSB7CgkJY291dDw8aXQ8PGVuZGw7Cgl9Cgljb3V0PDxlbmRsPDxlbmRsOwoJCgl2ZWN0b3I8c3RyaW5nPiBhbnM7Cglzb2x2ZShhbnMsIHZzLCBrLCAwLCAiIik7Cglmb3IgKGF1dG8gaXQ6IGFucykgewoJCWNvdXQ8PGl0PDxlbmRsOwoJfQoJcmV0dXJuIDA7Cn0=