#include <bits/stdc++.h>
using namespace std;
const int maxn = 1025;
inline void read(int &x) {
  x = 0;
  int f = 1;
  char ch = getchar();
  while (ch < '0' || ch > '9') {
    if (ch == '-') f = -1;
    ch = getchar();
  }
  while (ch >= '0' && ch <= '9') {
    x = x * 10 + ch - '0';
    ch = getchar();
  }
  x *= f;
}
inline void judge() {
  freopen("in.txt", "r", stdin);
  freopen("out.txt", "w", stdout);
}
int ans[maxn][maxn];
inline void get(int x) {
  if (x == 0) {
    ans[1][1] = 1;
    return;
  }
  get(x - 1);
  int n = 1 << (x - 1);
  for (int i = (1); i <= (n); i++)
    for (int j = (n + 1); j <= (n << 1); j++) ans[i][j] = ans[i][j - n];
  for (int i = (n + 1); i <= (n << 1); i++)
    for (int j = (1); j <= (n); j++) ans[i][j] = ans[i - n][j];
  for (int i = (n + 1); i <= (n << 1); i++)
    for (int j = (n + 1); j <= (n << 1); j++) ans[i][j] = -ans[i][j - n];
}
int main() {
  int k;
  read(k);
  get(k);
  for (int i = (1); i <= ((1 << k)); i++) {
    for (int j = (1); j <= ((1 << k)); j++)
      if (ans[i][j] == 1)
        putchar('+');
      else
        putchar('*');
    puts("");
  }
  return 0;
}
