#include <bits/stdc++.h>
using namespace std;
long long int arr[10][520][520];
void construct(long long int n) {
  if (n == 0) {
    arr[0][0][0] = 1;
    return;
  } else {
    construct(n - 1);
    long long int d = pow(2, n - 1);
    for (long long int z = 0; z < 4; z++) {
      long long int c = 1, rs, cs;
      if (z == 0) {
        rs = 0;
        cs = 0;
      } else if (z == 1) {
        rs = 0;
        cs = d;
      } else if (z == 2) {
        rs = d;
        cs = 0;
      } else if (z == 3) {
        rs = d;
        cs = d;
        c = -1;
      }
      for (long long int i = rs; i < rs + d; i++) {
        for (long long int j = cs; j < d + cs; j++) {
          arr[n][i][j] = arr[n - 1][i - rs][j - cs] * c;
        }
      }
    }
  }
  return;
}
void print(long long int n) {
  long long int d = pow(2, n);
  for (long long int i = 0; i < d; i++) {
    for (long long int j = 0; j < d; j++) {
      if (arr[n][i][j] == -1)
        printf("*");
      else if (arr[n][i][j] == 1)
        printf("+");
    }
    printf("\n");
  }
}
int main() {
  long long int k;
  cin >> k;
  construct(k);
  print(k);
  return 0;
}
