/*
ID: fniksic001
PROG: zerosum
LANG: C++
*/

#include <fstream>
#include <string>

using namespace std;

ifstream in("zerosum.in");
ofstream out("zerosum.out");

int N;
string myStr;

// op = 1 or -1
void search(int sumSoFar, int op, int sumand, int digit) {
    if (digit > N) {
	if (sumSoFar + op * sumand == 0)
	    out << myStr << endl;
	return;
    }
    // check ' '
    search(sumSoFar, op, sumand*10+digit, digit+1);
    // check '+'
    myStr[2*digit-3]='+';
    search(sumSoFar+op*sumand, 1, digit, digit+1);
    // check '-'
    myStr[2*digit-3]='-';
    search(sumSoFar+op*sumand, -1, digit, digit+1);
    // recover ' '
    myStr[2*digit-3]=' ';
}

int main() {
    in >> N;

    myStr.push_back('1');
    for (int i = 2; i <= N; ++i) {
	myStr.push_back(' ');
	myStr.push_back(static_cast<char>(i+'0'));
    }
    search(0, 1, 1, 2);

    return 0;
}
