(정올)Dessert –

#if 1
#ifndef _CRT_SECURE_NO_WARNINGS
#define _CRT_SECURE_NO_WARNINGS
#endif
#include <iostream>
#include <vector>
#include <list>
#include <queue>
#include <unordered_map>
#define MAX_N 15;
#define ll long long
using namespace std;

const int LM = 20;
const ll INF = 12345678910ll;
int N, ans;
char op(LM);

void output()
{
	int i;
	ans++;
	if (ans > 20) return;
	printf("1 ");
	for (i = 2; i <= N; i++)
	{
		printf("%c %d ", op(i), i);
	}
	puts("");
}

inline ll m_abs(ll k) { return k < 0 ? -k : k; }
void dfs(int step, ll a, ll b)
{
	//pruning
	if (m_abs(a) >= INF || m_abs(b) >= INF ) return;
	// Base Condition - pruning or Backtrcking
	if (step > N)
	{
		if (a + b == 0) {
			output();
		}
		return;
	}

	// Normal Condition
	int newValue = step, deci = 10;
	op(step) = '+';
	dfs(step + 1, a + b, newValue);

	op(step) = '-';
	dfs(step + 1, a + b, -newValue);

	op(step) = '.';
	if (step > 9) deci = 100;
	if (b < 0) newValue = -newValue;
	dfs(step + 1, a, b * deci + newValue);
}

int main(void)
{
	/*ios_base::sync_with_stdio(false);
	cin.tie(nullptr);
	cout.tie(nullptr);*/
#ifdef _WIN64
	freopen("input.txt", "r", stdin);
#endif // _WIN32
	scanf("%d\n", &N);
	dfs(2, 0, 1);
	printf("%d\n", ans);
}
#endif