#include <bits/stdc++.h>
using namespace std;
const int MAX_K = 600;
char ans[MAX_K][MAX_K];
void build(int k) {
  if (!k) {
    ans[0][0] = '+';
    return;
  }
  build(k - 1);
  int R = (int)pow(2, k - 1);
  if (k == 4) {
  }
  for (int i = 0; i < pow(2, k - 1); i++) {
    for (int j = R; j < pow(2, k); j++) {
      ans[i][j] = ans[i][j - R];
    }
  }
  for (int i = R; i < pow(2, k); i++) {
    for (int j = 0; j < pow(2, k - 1); j++) {
      ans[i][j] = ans[i - R][j];
    }
  }
  for (int i = R; i < pow(2, k); i++) {
    for (int j = R; j < pow(2, k); j++) {
      if (ans[i][j - R] == '+')
        ans[i][j] = '*';
      else
        ans[i][j] = '+';
    }
  }
}
int main() {
  int k;
  scanf("%d", &k);
  build(k);
  for (int i = 0; i < pow(2, k); i++) {
    for (int j = 0; j < pow(2, k); j++) cout << ans[i][j];
    cout << "\n";
  }
  cout << endl;
}
