#include <bits/stdc++.h>
using namespace std;
void dout() { cerr << endl; }
template <typename Head, typename... Tail>
void dout(Head H, Tail... T) {
  cerr << H << ' ';
  dout(T...);
}
int ANS;
int INF = 1000000000;
int was[71][71][71], n, mtr[100][100];
char s[1000];
pair<int, int> pr[71][71][71];
vector<vector<int> > q;
void ma(vector<int> ps, int ans, int a, int b) {
  sort(ps.begin(), ps.end());
  if (was[ps[0]][ps[1]][ps[2]]) return;
  int t = -1;
  for (int i = 0; i < ps.size(); ++i)
    if (a == ps[i]) t = i;
  a = t;
  pr[ps[0]][ps[1]][ps[2]] = make_pair(a, b);
  was[ps[0]][ps[1]][ps[2]] = ans;
  q.push_back(ps);
}
void go(vector<int> ps) {
  int p = 0;
  sort(ps.begin(), ps.end());
  q.push_back(ps);
  was[ps[0]][ps[1]][ps[2]] = 1;
  while (p < q.size()) {
    ps = q[p++];
    int x = ps[0], y = ps[1], z = ps[2];
    for (int i = 1; i <= n; ++i)
      if (mtr[y][z] == mtr[x][i] && y != i && z != i)
        ps[0] = i, ma(ps, was[x][y][z] + 1, i, x), ps[0] = x;
    for (int i = 1; i <= n; ++i)
      if (mtr[x][z] == mtr[y][i] && x != i && z != i)
        ps[1] = i, ma(ps, was[x][y][z] + 1, i, y), ps[1] = y;
    for (int i = 1; i <= n; ++i)
      if (mtr[y][x] == mtr[z][i] && y != i && x != i)
        ps[2] = i, ma(ps, was[x][y][z] + 1, i, z), ps[2] = z;
  }
}
int main() {
  int x, y, z;
  scanf("%d", &n);
  scanf("%d%d%d", &x, &y, &z);
  for (int i = 1; i <= n; ++i) {
    scanf("%s", s);
    for (int j = 0; j < n; ++j) mtr[i][j + 1] = s[j];
  }
  vector<int> t;
  t.push_back(x), t.push_back(y), t.push_back(z);
  sort(t.begin(), t.end());
  ANS = INF;
  go(t);
  vector<int> c;
  vector<pair<int, int> > ans;
  c.push_back(1), c.push_back(2), c.push_back(3);
  if (was[1][2][3] == 0) {
    printf("-1");
    return 0;
  }
  while (c != t) {
    int a = pr[c[0]][c[1]][c[2]].second;
    int b = c[pr[c[0]][c[1]][c[2]].first];
    ans.push_back(make_pair(a, b));
    c[pr[c[0]][c[1]][c[2]].first] = a;
    sort(c.begin(), c.end());
  }
  printf("%d\n", was[1][2][3] - 1);
  for (int i = (int)ans.size() - 1; i >= 0; --i)
    printf("%d %d\n", ans[i].first, ans[i].second);
  return 0;
}
