#include <bits/stdc++.h>
using namespace std;
char comp(char x) {
  if (x == '+')
    return '*';
  else
    return '+';
}
int main() {
  if (!0) {
    ios::sync_with_stdio(false);
    cin.tie(NULL);
  }
  cout << fixed;
  cout << setprecision(12);
  int k, i, j, x;
  cin >> k;
  char ar[10][515][515];
  ar[1][1][1] = '+';
  ar[1][1][2] = '+';
  ar[1][2][1] = '+';
  ar[1][2][2] = '*';
  for ((x) = (2); (x) <= (9); (x)++) {
    int sz = 1 << x, prevsz = 1 << (x - 1), pprevsz = 1 << (x - 2);
    for ((i) = (1); (i) <= (prevsz); (i)++)
      for ((j) = (1); (j) <= (prevsz); (j)++) ar[x][i][j] = ar[x - 1][i][j];
    for ((i) = (1); (i) <= (prevsz); (i)++)
      for ((j) = (1); (j) <= (prevsz); (j)++)
        ar[x][i + prevsz][j] = ar[x - 1][i][j];
    for ((i) = (1); (i) <= (prevsz); (i)++)
      for ((j) = (1); (j) <= (prevsz); (j)++)
        if (i <= pprevsz)
          ar[x][i][j + prevsz] = ar[x - 1][i][j];
        else
          ar[x][i][j + prevsz] = comp(ar[x - 1][i][j]);
    for ((i) = (1); (i) <= (prevsz); (i)++)
      for ((j) = (1); (j) <= (prevsz); (j)++)
        if (i > pprevsz)
          ar[x][i + prevsz][j + prevsz] = ar[x - 1][i][j];
        else
          ar[x][i + prevsz][j + prevsz] = comp(ar[x - 1][i][j]);
  }
  int sz = 1 << k;
  if (k == 0) {
    cout << "+";
    return 0;
  }
  for ((i) = (1); (i) <= (sz); (i)++) {
    for ((j) = (1); (j) <= (sz); (j)++) cout << ar[k][i][j];
    cout << "\n";
  }
}
