#include <bits/stdc++.h>
using namespace std;
long long mod = 1000000007;
long long large = 2000000000000000000LL;
int main() {
  int n;
  cin >> n;
  vector<int> p(n, 0);
  for (int i = 0; i < n; i++) {
    scanf("%d", &p[i]);
    p[i]--;
  }
  bool check = true;
  for (int i = 0; i < n; i++)
    if (p[i] != i) check = false;
  if (check) {
    cout << n << endl;
    for (int i = 0; i < n; i++) {
      for (int j = 0; j < n; j++) {
        cout << ".";
      }
      cout << endl;
    }
    return 0;
  }
  vector<int> ip(n, -1);
  for (int i = 0; i < n; i++) {
    ip[p[i]] = i;
  }
  vector<bool> vis(n, false);
  vector<vector<int> > adj;
  for (int i = 0; i < n; i++) {
    if (!vis[i]) {
      vis[i] = true;
      int u = i;
      vector<int> re;
      re.push_back(u);
      u = p[u];
      while (u != i) {
        vis[u] = true;
        re.push_back(u);
        u = p[u];
      }
      adj.push_back(re);
    }
  }
  int maxi = -1;
  for (int i = 0; i < n; i++) {
    if (i != p[i]) maxi = max(maxi, p[i]);
  }
  maxi = ip[maxi];
  for (int i = 0; i < (int)adj.size(); i++) {
    bool find = false;
    for (int j = 0; j < (int)adj[i].size(); j++) {
      if (adj[i][j] == maxi) {
        find = true;
        break;
      }
    }
    if (find) {
      swap(adj[i], adj[0]);
      break;
    }
  }
  vector<vector<int> > g(n, vector<int>(n, 0));
  int it = 0;
  int u = maxi;
  u = ip[u];
  while (u != maxi) {
    if (p[u] > u) {
      g[it][u] = 1;
      g[it][p[u]] = 1;
    } else {
      g[it][u] = -1;
      g[it][p[u]] = -1;
    }
    it++;
    u = ip[u];
  }
  for (int i = 1; i < (int)adj.size(); i++) {
    if (adj[i].size() == 1) continue;
    int u = -1;
    for (int j = 0; j < (int)adj[i].size(); j++) {
      u = max(u, adj[i][j]);
    }
    g[it][u] = 1;
    g[it][p[maxi]] = 1;
    int st = u;
    u = ip[u];
    while (u != st) {
      if (p[u] > u) {
        g[it][u] = 1;
        g[it][p[u]] = 1;
      } else {
        g[it][u] = -1;
        g[it][p[u]] = -1;
      }
      it++;
      u = ip[u];
    }
    g[it][p[maxi]] = -1;
    g[it][p[u]] = -1;
    it++;
  }
  cout << n - 1 << endl;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
      if (g[n - 1 - i][j] == 0) {
        cout << ".";
      }
      if (g[n - 1 - i][j] == 1) {
        cout << "/";
      }
      if (g[n - 1 - i][j] == -1) {
        cout << "\\";
      }
    }
    cout << endl;
  }
  return 0;
}
