#include <bits/stdc++.h>
using namespace std;
void null() { return; }
const long long INF = 3e18 + 9237;
const long long maxn = 1e5 + 7;
const long long mod = 1e9 + 7;
const long long sqN = 320;
const long long lgN = 20;
vector<string> vec;
char a[1 << 9][1 << 9];
string nagh(string s) {
  for (long long i = 0; i < s.size(); i++)
    if (s[i] == '+')
      s[i] = '*';
    else
      s[i] = '+';
  return s;
}
void check(long long n) {
  for (long long i = 0; i < n; i++)
    for (long long j = 0; j < n; j++) a[i][j] = vec[i][j];
  for (long long i = 0; i < n; i++) {
    for (long long j = 0; j < n; j++) {
      if (i == j) continue;
      long long sum = 0;
      for (long long k = 0; k < n; k++)
        sum += (a[i][k] == '*' ? -1 : 1) * (a[j][k] == '*' ? -1 : 1);
      if (sum) return cout << i << " " << j << " you have been haked!", null();
    }
  }
}
int32_t main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long long n;
  cin >> n;
  vec.push_back("+");
  for (long long i = 0; i < n; i++) {
    long long sz = vec.size();
    for (long long j = 0; j < sz; j++) {
      string tmp = vec[j] + nagh(vec[j]);
      vec.push_back(tmp);
      vec[j] = vec[j] + vec[j];
    }
  }
  for (auto u : vec) cout << u << "\n";
}
