#include <iostream>
#include <stack>
int main() {
int n;
std::cin >> n;
std::stack<int> s[3];
for (int i = n; i > 0; --i) {
s[0].push(i);
}
int mpos = 0;
while (!s[0].empty() || !s[1].empty()) {
s[(mpos + 1 + (n % 2)) % 3].push(s[mpos].top());
s[mpos].pop();
mpos = (mpos + 1 + (n % 2)) % 3;
if (s[0].empty() && s[1].empty())
break;
if (s[(mpos + 1) % 3].empty()) {
s[(mpos + 1) % 3].push(s[(mpos + 2) % 3].top());
s[(mpos + 2) % 3].pop();
} else if (s[(mpos + 2) % 3].empty()) {
s[(mpos + 2) % 3].push(s[(mpos + 1) % 3].top());
s[(mpos + 1) % 3].pop();
} else if (s[(mpos + 1) % 3].top() < s[(mpos + 2) % 3].top()) {
s[(mpos + 2) % 3].push(s[(mpos + 1) % 3].top());
s[(mpos + 1) % 3].pop();
} else {
s[(mpos + 1) % 3].push(s[(mpos + 2) % 3].top());
s[(mpos + 2) % 3].pop();
}
}
std::cout << "----" << std::endl;
for (int i = 0; i < 3; ++i) {
while (!s[i].empty()) {
std::cout << s[i].top() << ' ';
s[i].pop();
}
std::cout << std::endl;
}
}