#include <bits/stdc++.h>
using namespace std;

const int BITS = 11;
string dp[(1<<BITS)];

int main() {
	// your code goes here
	
	dp[0] = "";
    for(int i=1;i<(1<<BITS);i++)
    {
        int last = i&(-i);
        int prev = i - last;
        dp[i] = dp[prev] + to_string(__builtin_ctz(last)) + " ";
        cout<<i<<" -> "<<dp[i]<<"\n";
    }
	
	return 0;
}