#include <bits/stdc++.h>
using namespace std;
vector<vector<int> > Solve(int N) {
  vector<vector<int> > ans;
  ans.assign(1 << N, vector<int>(1 << N, 0));
  if (N == 1) {
    ans[0][0] = ans[0][1] = ans[1][0] = 1;
    ans[1][1] = -1;
    return ans;
  }
  vector<vector<int> > _ans = Solve(N - 1);
  for (int i = 0; i < (1 << (N - 1)); ++i) {
    for (int j = 0; j < (1 << N); ++j)
      ans[i][j] =
          (j < (1 << (N - 1))) ? _ans[i][j] : ans[i][j - (1 << (N - 1))];
    for (int j = 0; j < (1 << N); ++j)
      ans[i + (1 << (N - 1))][j] =
          (j < (1 << (N - 1))) ? -ans[i][j] : ans[i][j];
  }
  return ans;
}
int N;
int main() {
  scanf("%d", &N);
  if (N == 0) {
    printf("+");
    return 0;
  }
  vector<vector<int> > ans = Solve(N);
  for (int i = 0; i < (1 << N); ++i, printf("\n"))
    for (int j = 0; j < (1 << N); ++j) printf("%c", ans[i][j] == 1 ? '+' : '*');
  return 0;
}
