#include #include #include #include #include #include #include #include #include #include using namespace std; using namespace atcoder; #define rep(i, n) for (int i = 0; i < (int)(n); ++i) #define rrep(i, n) for (int i = (int)(n)-1; i >= 0; --i) #define rep2(i, a, b) for (int i = (int)a; i < (int)(b); ++i) #define rrep2(i, a, b) for (int i = (int)(b)-1; i >= (int)(a); --i) template inline bool chmin(T& a, T b) { if (a > b) { a = b; return 1; } return 0; } using ll = long long; // using mint = modint998244353; // constexpr int inv_2 = 499122177; int main(){ // cin.tie(nullptr); // std::ios_base::sync_with_stdio(false); int N; scanf("%d", &N); string dp[20]; rep(bit, 20){ dp[bit].push_back('{'); int comma = __builtin_popcount(bit); rep(i, 5) if(bit>>i&1){ dp[bit] += dp[i]; if(--comma) dp[bit].push_back(','); } dp[bit].push_back('}'); } printf("{"); int comma = __builtin_popcount(N); rep(i, 20) if(N>>i&1){ printf("%s", dp[i].c_str()); if(--comma) printf(","); } printf("}\n"); return 0; }