#include <bits/stdc++.h>
using namespace std;
const int MAX_N = 1000;
int n;
vector<int> c, d, u;
void read_input() {
  scanf("%d", &n);
  c.resize(n);
  d.resize(n);
  u.resize(n);
  for (int i = 0; i < n; ++i) {
    scanf("%d", &c[i]);
    d[i] = c[i];
    u[i] = c[i];
  }
}
void ps(int from, int to) {
  printf("%d ml. ", (to - from) / 2);
  for (int i = 0; i < d.size(); ++i)
    if (d[i] == from) {
      printf("from cup #%d ", i + 1);
      break;
    }
  for (int i = 0; i < d.size(); ++i)
    if (d[i] == to) {
      printf("to cup #%d.\n", i + 1);
      break;
    }
}
bool solve() {
  sort(u.begin(), u.end());
  sort(c.begin(), c.end());
  int mi = c[0];
  int ma = c[c.size() - 1];
  if (mi == ma) {
    printf("Exemplary pages.\n");
    return (true);
  }
  if (((ma - mi) % 2) != 0) return (false);
  vector<int>::iterator ne = unique(u.begin(), u.end());
  if (ne - u.begin() > 3) return (false);
  int count[3];
  int vol[3];
  for (int i = 0; i < 3; ++i) count[i] = 0;
  count[0] = 1;
  vol[0] = c[0];
  int id = 0;
  for (int i = 1; i < c.size(); ++i) {
    if (c[i] != c[i - 1]) {
      ++id;
      vol[id] = c[i];
    }
    ++(count[id]);
  }
  if (c.size() == 2) {
    ps(mi, ma);
    return (true);
  }
  if (count[0] > 1 || count[2] > 1) return (false);
  if ((ma + mi) / 2 == vol[1]) {
    ps(mi, ma);
    return (true);
  }
  return (false);
}
int main() {
  read_input();
  if (!solve()) printf("Unrecoverable configuration.\n");
  return (0);
}
