#include <bits/stdc++.h>
using namespace std;
int a[1000], p[1000], visited[1000];
char ans[1000][1000];
int main() {
  int i;
  int n;
  scanf("%d", &n);
  for (i = 0; i < n; i++) scanf("%d", &a[i]), p[--a[i]] = i;
  int j;
  vector<int> v;
  for (i = 0; i < n; i++) {
    if (a[i] != i) v.push_back(i);
  }
  if (v.empty()) {
    printf("%d\n", n);
    for (i = 0; i < n; i++) {
      for (j = 0; j < n; j++) printf(".");
      printf("\n");
    }
    return 0;
  }
  for (i = 0; i < v.size(); i++) {
    if (a[v[i]] > a[v.back()]) swap(v[i], v.back());
  }
  for (i = 0; i < n; i++) {
    for (j = 0; j < n; j++) ans[i][j] = '.';
  }
  "here";
  ;
  int c = 0;
  int u = p[v.back()];
  visited[v.back()] = 1;
  while (u != v.back()) {
    visited[u] = 1;
    ans[n - c - 1][u] = ans[n - c - 1][a[u]] = (a[u] < u) ? '\\' : '/', c++;
    u = p[u];
  }
  "here";
  int pp = c;
  c++;
  ans[n - pp - 1][a[v.back()]] = '/';
  assert(pp <= n - 1);
  int l = -1, l2;
  int e = a[v.back()];
  sort(v.begin(), v.end() - 1);
  for (i = 0; i < v.size(); i++) {
    if (!visited[v[i]]) {
      int u = v[i];
      ans[n - pp - 1][u] = '/';
      if (l != -1) {
        ans[n - c - 1][l2] = ans[n - c - 1][u] = (l2 < u) ? '\\' : '/', c++;
      }
      l = a[u], l2 = a[u];
      do {
        visited[u] = 1;
        if (p[u] != v[i])
          ans[n - c - 1][u] = ans[n - c - 1][p[u]] = (p[u] > u) ? '\\' : '/',
                      c++;
        u = p[u];
      } while (u != v[i]);
    }
  }
  if (l != -1)
    ans[n - c - 1][l] = ans[n - c - 1][e] = (l < e) ? '\\' : '/', c++;
  assert(c <= n);
  printf("%d\n", n - 1);
  for (i = 0; i < n; i++) {
    for (j = 0; j < n; j++) printf("%c", ans[i][j]);
    printf("\n");
  }
  return 0;
}
