#include <iostream>
#include <stack>
#include <queue>

void f(queue<int> l, stack<int> m, queue<int> r) {

	queue<int> ll = l, rr = r;
	stack<int> mm = m;

	if(l.empty() && m.empty()) {
		cout << "front - " ;
		while(!r.empty()) {
			cout << r.front() << " - " ;
			r.pop();
		}
		cout << "back" << endl;
	}

	if(!l.empty()) {

		m.push(l.front());
		l.pop();

		f(l, m, r);
	}

	if(!mm.empty()) {
		rr.push(mm.top());
		mm.pop();
		f(ll, mm, rr);
	}
}

main()
{
	int i, n;
	queue<int> l, r;
	stack<int> m;

	cin >> n;
	for(i = 1; i <= n; i++) {
		l.push(i);
	}

	f(l, m, r);
}

