//ssenseeeeeeeeeeeeeeeeeeeeeeeeeeeee
#include<bits/stdc++.h>
#define startt ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
typedef unsigned long long ull;
typedef long long  ll;
#define MOD 1000000007
#define MX 1000000000
#define NMAX 100005
#define MXL 1000000000000000000
#define PI 3.14159265
#define pb push_back
using namespace std;
#define sc second
#define endl '\n'
#define fr first

int main(){
    startt
    int n;
    cin >> n;
    int a[n+1];
    int mx = 0;
    int mn = MX;
    int sum = 0;
    set<int> s;
    for(int i = 0; i < n; i++)
    {
        cin >> a[i];
        mn = min(mn, a[i]);
        mx = max(mx, a[i]);
        sum+=a[i];
        s.insert(a[i]);
    }
    int nr = sum/n;
    if(nr*n != sum)
    {
        cout << "Unrecoverable configuration.";
        return 0;
    }
    if(s.size() == 1)
    {
        cout << "Exemplary pages.";
        return 0;
    }
    if(s.size() != 3 && n > 3)
    {
        cout << "Unrecoverable configuration.";
        return 0;
    }
    cout << (mx-mn)/2 << " ml. from cup #";
    for(int i = 0; i < n; i++)
    {
        if(a[i] == nr-(mx-mn)/2)
        {
            cout << i+1;
            break;
        }
    }
    cout << " to cup #";
    for(int i = 0; i < n; i++)
    {
        if(a[i] == nr+(mx-mn)/2)
        {
            cout << i+1 << ".";
            break;
        }
    }
}


//ssenseeeeeeeeeeeeeeeeeeeeeeeeeeeee
#include<bits/stdc++.h>
#define startt ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
typedef unsigned long long ull;
typedef long long  ll;
#define MOD 1000000007
#define MX 1000000000
#define NMAX 100005
#define MXL 1000000000000000000
#define PI 3.14159265
#define pb push_back
using namespace std;
#define sc second
#define endl '\n'
#define fr first

int main(){
    startt
    int n;
    cin >> n;
    int a[n+1];
    int mx = 0;
    int mn = MX;
    int sum = 0;
    for(int i = 0; i < n; i++)
    {
        cin >> a[i];
        mn = min(mn, a[i]);
        mx = max(mx, a[i]);
        sum+=a[i];
    }
    int nr = sum/n;
    if(nr*n != sum)
    {
        cout << "Unrecoverable configuration.";
        return 0;
    }
    if((mx-mn)/2 == 0)
    {
        cout << "Exemplary pages.";
        return 0;
    }
    cout << (mx-mn)/2 << " ml. from cup #";
    for(int i = 0; i < n; i++)
    {
        if(a[i] == nr-(mx-mn)/2)
        {
            cout << i+1;
            break;
        }
    }
    cout << " to cup #";
    for(int i = 0; i < n; i++)
    {
        if(a[i] == nr+(mx-mn)/2)
        {
            cout << i+1 << ".";
            break;
        }
    }
}


//ssenseeeeeeeeeeeeeeeeeeeeeeeeeeeee
#include<bits/stdc++.h>
#define startt ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
typedef unsigned long long ull;
typedef long long  ll;
#define MOD 1000000007
#define MX 1000000000
#define NMAX 100005
#define MXL 1000000000000000000
#define PI 3.14159265
#define pb push_back
using namespace std;
#define sc second
#define endl '\n'
#define fr first

int main(){
    startt
    int n;
    cin >> n;
    int a[n+1];
    int mx = 0;
    int mn = MX;
    int sum = 0;
    for(int i = 0; i < n; i++)
    {
        cin >> a[i];
        mn = min(mn, a[i]);
        mx = max(mx, a[i]);
        sum+=a[i];
    }
    if((mx-mn)/2 == 0)
    {
        cout << "Exemplary pages.";
        return 0;
    }
    cout << (mx-mn)/2 << " ml. from cup #";
    int nr = sum/n;
    if(nr*n != sum)
    {
        cout << "Unrecoverable configuration.";
        return 0;
    }
    for(int i = 0; i < n; i++)
    {
        if(a[i] == nr-(mx-mn)/2)
        {
            cout << i+1;
            break;
        }
    }
    cout << " to cup #";
    for(int i = 0; i < n; i++)
    {
        if(a[i] == nr+(mx-mn)/2)
        {
            cout << i+1 << ".";
            break;
        }
    }
}


//ssenseeeeeeeeeeeeeeeeeeeeeeeeeeeee
#include<bits/stdc++.h>
#define startt ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
typedef unsigned long long ull;
typedef long long  ll;
#define MOD 1000000007
#define MX 1000000000
#define NMAX 100005
#define MXL 1000000000000000000
#define PI 3.14159265
#define pb push_back
using namespace std;
#define sc second
#define endl '\n'
#define fr first

int main(){
    startt
    int n;
    cin >> n;
    int a[n+1];
    int mx = 0;
    int mn = MX;
    int sum = 0;
    for(int i = 0; i < n; i++)
    {
        cin >> a[i];
        mn = min(mn, a[i]);
        mx = max(mx, a[i]);
        sum+=a[i];
    }
    if((mx-mn)/2 == 0)
    {
        cout << "Exemplary pages.";
        return 0;
    }
    int nr = sum/n;
    if(nr*n != sum)
    {
        cout << "Unrecoverable configuration.";
        return 0;
    }
    cout << (mx-mn)/2 << " ml. from cup #";
    for(int i = 0; i < n; i++)
    {
        if(a[i] == nr-(mx-mn)/2)
        {
            cout << i+1;
            break;
        }
    }
    cout << " to cup #";
    for(int i = 0; i < n; i++)
    {
        if(a[i] == nr+(mx-mn)/2)
        {
            cout << i+1 << ".";
            break;
        }
    }
}


#include<bits/stdc++.h>
#define ll long long
using namespace std;

int main() {
    //freopen("input.txt", "r", stdin);
    //freopen("output.txt", "w", stdout);
    int n;
    cin >> n;
    cin.ignore();
    int A[n], sum = 0;
    for(int i = 0; i < n; i++) {
        cin >> A[i];
        sum += A[i];
    }
    if(sum % n == 0) {
        int mean = sum / n;
        int ct = 0, pos, pos2;
        for(int i = 0; i < n; i++) {
            if(A[i] == mean) ct++;
            else if(A[i] > mean) pos = i + 1;
            else if(A[i] < mean) pos2 = i + 1;
        }

        if((n - ct) == 0) cout << "Exemplary pages.";
        else if((n - ct) == 2) {
            cout << A[pos] - A[pos2] << " ml. from cup #" << pos << " to cup #" << pos2 << ".";

        }
        else {
            cout << "Unrecoverable configuration.";
        }
    }
    else cout << "Unrecoverable configuration.";
}


#include<bits/stdc++.h>
#define ll long long
using namespace std;

int main() {
    //freopen("input.txt", "r", stdin);
    f//reopen("output.txt", "w", stdout);
    int n;
    cin >> n;
    cin.ignore();
    int A[n], sum = 0;
    for(int i = 0; i < n; i++) {
        cin >> A[i];
        sum += A[i];
    }
    if(sum % n == 0) {
        int mean = sum / n;
        int ct = 0, pos, pos2;
        for(int i = 0; i < nn; i++) {
            if(A[i] == mean) ct++;
            else if(A[i] > mean) pos = i + 1;
            else if(A[i] < mean) pos2 = i + 1;
        }

        if((n - ct) == 0) cout << "Exemplary pages.";
        else if((n - ct) == 2) {
            cout << A[pos] - A[pos2] << " ml. from cup #" << pos << " to cup #" << pos2 << ".";

        }
        else {
            cout << "Unrecoverable configuration.";
        }
    }
    else cout << "Unrecoverable configuration.";
}


#include<bits/stdc++.h>
#define ll long long
using namespace std;

int main() {
    //freopen("input.txt", "r", stdin);
    //freopen("output.txt", "w", stdout);
    int n;
    cin >> n;
    cin.ignore();
    int A[n], sum = 0;
    for(int i = 0; i < n; i++) {
        cin >> A[i];
        sum += A[i];
    }
    if(sum % n == 0) {
        int mean = sum / n;
        int ct = 0, pos, pos2;
        for(int i = 0; i < n; i++) {
            if(A[i] == mean) ct++;
            else if(A[i] > mean) pos = i + 1;
            else if(A[i] < mean) pos2 = i + 1;
        }

        if((n - ct) == 0) cout << "Exemplary pages.";
        else if((n - ct) == 2) {
            cout << (A[pos - 1] - A[pos2 - 1]) / 2 << " ml. from cup #" << pos2 << " to cup #" << pos << ".";

        }
        else {
            cout << "Unrecoverable configuration.";
        }
    }
    else cout << "Unrecoverable configuration.";
}


#include<bits/stdc++.h>
#define ll long long
using namespace std;

int main() {
    //freopen("input.txt", "r", stdin);
    //freopen("output.txt", "w", stdout);
    int n;
    cin >> n;
    cin.ignore();
    int A[n], sum = 0;
    for(int i = 0; i < n; i++) {
        cin >> A[i];
        sum += A[i];
    }
    if(sum % n == 0) {
        int mean = sum / n;
        int ct = 0, pos, pos2;
        for(int i = 0; i < n; i++) {
            if(A[i] == mean) ct++;
            else if(A[i] > mean) pos = i + 1;
            else if(A[i] < mean) pos2 = i + 1;
        }

        if((n - ct) == 0) cout << "Exemplary pages.";
        else if((n - ct) == 2) {
            cout << A[pos - 1] - A[pos2 - 1] << " ml. from cup #" << pos2 << " to cup #" << pos << ".";

        }
        else {
            cout << "Unrecoverable configuration.";
        }
    }
    else cout << "Unrecoverable configuration.";
}


// Disclaimer: Don't copy my template, it may lead to plagiarism.
/* Author: Soumy Jain
   Handle: soumy_jain
   "Beautiful flowers too, eventually wither and fall. That's the fate of all living beings."
   "I hate perfection. To be perfect is to be unable to improve any furthur." - Mayuri Kurotsuchi | Bleach
   "I smile to show the pressure of heroes and to trick the fear inside of me."
   "Gravel may be gravel, but me? I'm the gravel that shatters diamonds."
   "If you were to write a story with me in the lead role, it would certainly be...a TRAGEDY." - Kaneki Ken | Tokyo Ghoul
*/
/******************************************************************************/
#include <bits/stdc++.h>
#define ll        long long
#define ull       unsigned long long
#define SPEEDHACK ios_base::sync_with_stdio(false);cin.tie(NULL);
#define inputv0   for(ll i=0;i<n;i++) cin>>v[i];
#define inputv1   for(ll i=1;i<=n;i++) cin>>v[i];
#define file      freopen("input.txt" , "r" , stdin); freopen("output.txt" , "w" , stdout);
#define MOD       1000000007      // 998244353
using namespace std;
/******************************************************************************/
// Power
ll powmod(ll x, ull y)
{
    if (y == 0) return 1;
    ll p = powmod(x, y/2) % MOD;
    p = (p * p) % MOD;
    return (y%2 == 0)? p : (x * p) % MOD;
}
// Multiplicative Inverse
ll modInverse(ll a)
{  return powmod(a, MOD-2)%MOD;  }
// Least Common Multiple
ll lcm(ll a,ll b)
{  return (a*b)/__gcd(a,b);  }
// Ascending
bool sortbysec(const pair<ll,ll>&a,const pair<ll,ll>&b)
{  return a.second<b.second;  }
// ceil
ll myceil(ll x, ll y)
{  return (x+y-1)/y;  }
// Factorial
ll fact(ll n)
{
    ll f=1;
    for(ll i=2;i<=n;i++)
        f*=i;
    return f;
}
// Prime numbers upto n
void sieve(ll n)
{
    vector<bool>prime(n+1,true);
    for (ll p=2; p*p<=n; p++)
    {
        if (prime[p] == true)
            for (ll i=p*p; i<=n; i += p)
                prime[i] = false;
    }
    for (ll p=2; p<=n; p++)
        if (prime[p])
            cout << p << " ";
}
// Binary Search
ll bs(vector <ll> &v, ll key)
{
	ll r=v.size()-1,l=0;
	while (r >= l)
	{
		ll m = l + (r - l) / 2;
		if (v[m] == key) return m;
		else if (v[m] < key) l = m + 1;
		else r = m - 1;
	}
	return -1;
}
// All distinct factors of a number
vector<ll> factors(ll n)
{
	vector<ll>v;
	for(ll i=1;i*i<=n;i++)
	{
	    if(n%i==0)
		{
			v.push_back(i);
			if(n/i!=i)  v.push_back(n/i);
		}
	}
	return v;
}
// Print vector
void prtvec(vector<ll> &v)
{
    for(auto i: v)
        cout<<i<<" ";
}
/***********************************MAIN***************************************/
// Are you ready to face the wrath of test cases? Good luck noob Soumy!

int main()
{
    SPEEDHACK //file
    ll n;
    cin>>n;
    map<ll,ll> M;
    vector<pair<ll,ll>> k;
    for(ll i=0;i<n;i++)
    {
        ll x;
        cin>>x;
        M[x]++;
        if(M[x]==1)
        {
            k.push_back(make_pair(x,i+1));
        }
    }
    if(M.size()==1)
        cout<<"Exemplary pages.";
    else if(M.size()==3)
    {
        vector<ll> v;
        for(auto i: M)
            v.push_back(i.first);
        sort(v.begin(),v.end());
        cout<<(v[2]-v[0])/2<<" ml. ";
        for(auto i: k)
        {
            if(i.first==v[0])
            {
                cout<<"from cup #"<<i.second<<" ";
                break;
            }
        }
        for(auto i: k)
        {
            if(i.first==v[2])
            {
                cout<<"to cup #"<<i.second<<".";
                break;
            }
        }
    }
    else
        cout<<"Unrecoverable configuration.";
    return 0;
}


// Disclaimer: Don't copy my template, it may lead to plagiarism.
/* Author: Soumy Jain
   Handle: soumy_jain
   "Beautiful flowers too, eventually wither and fall. That's the fate of all living beings."
   "I hate perfection. To be perfect is to be unable to improve any furthur." - Mayuri Kurotsuchi | Bleach
   "I smile to show the pressure of heroes and to trick the fear inside of me."
   "Gravel may be gravel, but me? I'm the gravel that shatters diamonds."
   "If you were to write a story with me in the lead role, it would certainly be...a TRAGEDY." - Kaneki Ken | Tokyo Ghoul
*/
/******************************************************************************/
#include <bits/stdc++.h>
#define ll        long long
#define ull       unsigned long long
#define SPEEDHACK ios_base::sync_with_stdio(false);cin.tie(NULL);
#define inputv0   for(ll i=0;i<n;i++) cin>>v[i];
#define inputv1   for(ll i=1;i<=n;i++) cin>>v[i];
#define file      freopen("input.txt" , "r" , stdin); freopen("output.txt" , "w" , stdout);
#define MOD       1000000007      // 998244353
using namespace std;
/******************************************************************************/
// Power
ll powmod(ll x, ull y)
{
    if (y == 0) return 1;
    ll p = powmod(x, y/2) % MOD;
    p = (p * p) % MOD;
    return (y%2 == 0)? p : (x * p) % MOD;
}
// Multiplicative Inverse
ll modInverse(ll a)
{  return powmod(a, MOD-2)%MOD;  }
// Least Common Multiple
ll lcm(ll a,ll b)
{  return (a*b)/__gcd(a,b);  }
// Ascending
bool sortbysec(const pair<ll,ll>&a,const pair<ll,ll>&b)
{  return a.second<b.second;  }
// ceil
ll myceil(ll x, ll y)
{  return (x+y-1)/y;  }
// Factorial
ll fact(ll n)
{
    ll f=1;
    for(ll i=2;i<=n;i++)
        f*=i;
    return f;
}
// Prime numbers upto n
void sieve(ll n)
{
    vector<bool>prime(n+1,true);
    for (ll p=2; p*p<=n; p++)
    {
        if (prime[p] == true)
            for (ll i=p*p; i<=n; i += p)
                prime[i] = false;
    }
    for (ll p=2; p<=n; p++)
        if (prime[p])
            cout << p << " ";
}
// Binary Search
ll bs(vector <ll> &v, ll key)
{
	ll r=v.size()-1,l=0;
	while (r >= l)
	{
		ll m = l + (r - l) / 2;
		if (v[m] == key) return m;
		else if (v[m] < key) l = m + 1;
		else r = m - 1;
	}
	return -1;
}
// All distinct factors of a number
vector<ll> factors(ll n)
{
	vector<ll>v;
	for(ll i=1;i*i<=n;i++)
	{
	    if(n%i==0)
		{
			v.push_back(i);
			if(n/i!=i)  v.push_back(n/i);
		}
	}
	return v;
}
// Print vector
void prtvec(vector<ll> &v)
{
    for(auto i: v)
        cout<<i<<" ";
}
/***********************************MAIN***************************************/
// Are you ready to face the wrath of test cases? Good luck noob Soumy!

int main()
{
    SPEEDHACK //file
    ll n,sum=0;
    cin>>n;
    map<ll,ll> M;
    vector<pair<ll,ll>> k;
    for(ll i=0;i<n;i++)
    {
        ll x;
        cin>>x;
        sum+=x;
        M[x]++;
        if(M[x]==1)
        {
            k.push_back(make_pair(x,i+1));
        }
    }
    if(ceil(sum*1.0/n)!=floor(sum*1.0/n))
        cout<<"Unrecoverable configuration.";
    else if(M.size()==1)
        cout<<"Exemplary pages.";
    else if(M.size()==3)
    {
        vector<ll> v;
        for(auto i: M)
            v.push_back(i.first);
        sort(v.begin(),v.end());
        cout<<(v[2]-v[0])/2<<" ml. ";
        for(auto i: k)
        {
            if(i.first==v[0])
            {
                cout<<"from cup #"<<i.second<<" ";
                break;
            }
        }
        for(auto i: k)
        {
            if(i.first==v[2])
            {
                cout<<"to cup #"<<i.second<<".";
                break;
            }
        }
    }
    else if(M.size()==2 && abs(k[0].first-k[1].first)/2>0 && n==2)
    {
        if(k[0].first>k[1].first)
            cout<<(k[0].first-k[1].first)/2<<" ml. from cup #2 to cup #1.";
        else
            cout<<(k[1].first-k[0].first)/2<<" ml. from cup #1 to cup #2.";
    }
    else
        cout<<"Unrecoverable configuration.";
    return 0;
}


// Disclaimer: Don't copy my template, it may lead to plagiarism.
/* Author: Soumy Jain
   Handle: soumy_jain
   "Beautiful flowers too, eventually wither and fall. That's the fate of all living beings."
   "I hate perfection. To be perfect is to be unable to improve any furthur." - Mayuri Kurotsuchi | Bleach
   "I smile to show the pressure of heroes and to trick the fear inside of me."
   "Gravel may be gravel, but me? I'm the gravel that shatters diamonds."
   "If you were to write a story with me in the lead role, it would certainly be...a TRAGEDY." - Kaneki Ken | Tokyo Ghoul
*/
/******************************************************************************/
#include <bits/stdc++.h>
#define ll        long long
#define ull       unsigned long long
#define SPEEDHACK ios_base::sync_with_stdio(false);cin.tie(NULL);
#define inputv0   for(ll i=0;i<n;i++) cin>>v[i];
#define inputv1   for(ll i=1;i<=n;i++) cin>>v[i];
#define file      freopen("input.txt" , "r" , stdin); freopen("output.txt" , "w" , stdout);
#define MOD       1000000007      // 998244353
using namespace std;
/******************************************************************************/
// Power
ll powmod(ll x, ull y)
{
    if (y == 0) return 1;
    ll p = powmod(x, y/2) % MOD;
    p = (p * p) % MOD;
    return (y%2 == 0)? p : (x * p) % MOD;
}
// Multiplicative Inverse
ll modInverse(ll a)
{  return powmod(a, MOD-2)%MOD;  }
// Least Common Multiple
ll lcm(ll a,ll b)
{  return (a*b)/__gcd(a,b);  }
// Ascending
bool sortbysec(const pair<ll,ll>&a,const pair<ll,ll>&b)
{  return a.second<b.second;  }
// ceil
ll myceil(ll x, ll y)
{  return (x+y-1)/y;  }
// Factorial
ll fact(ll n)
{
    ll f=1;
    for(ll i=2;i<=n;i++)
        f*=i;
    return f;
}
// Prime numbers upto n
void sieve(ll n)
{
    vector<bool>prime(n+1,true);
    for (ll p=2; p*p<=n; p++)
    {
        if (prime[p] == true)
            for (ll i=p*p; i<=n; i += p)
                prime[i] = false;
    }
    for (ll p=2; p<=n; p++)
        if (prime[p])
            cout << p << " ";
}
// Binary Search
ll bs(vector <ll> &v, ll key)
{
	ll r=v.size()-1,l=0;
	while (r >= l)
	{
		ll m = l + (r - l) / 2;
		if (v[m] == key) return m;
		else if (v[m] < key) l = m + 1;
		else r = m - 1;
	}
	return -1;
}
// All distinct factors of a number
vector<ll> factors(ll n)
{
	vector<ll>v;
	for(ll i=1;i*i<=n;i++)
	{
	    if(n%i==0)
		{
			v.push_back(i);
			if(n/i!=i)  v.push_back(n/i);
		}
	}
	return v;
}
// Print vector
void prtvec(vector<ll> &v)
{
    for(auto i: v)
        cout<<i<<" ";
}
/***********************************MAIN***************************************/
// Are you ready to face the wrath of test cases? Good luck noob Soumy!

int main()
{
    SPEEDHACK //file
    ll n;
    cin>>n;
    map<ll,ll> M;
    vector<pair<ll,ll>> k;
    for(ll i=0;i<n;i++)
    {
        ll x;
        cin>>x;
        M[x]++;
        if(M[x]==1)
        {
            k.push_back(make_pair(x,i+1));
        }
    }
    if(M.size()==1)
        cout<<"Exemplary pages.";
    else if(M.size()==3)
    {
        vector<ll> v;
        for(auto i: M)
            v.push_back(i.first);
        sort(v.begin(),v.end());
        cout<<(v[2]-v[0])/2<<" ml. ";
        for(auto i: k)
        {
            if(i.first==v[0])
            {
                cout<<"from cup #"<<i.second<<" ";
                break;
            }
        }
        for(auto i: k)
        {
            if(i.first==v[2])
            {
                cout<<"to cup #"<<i.second<<".";
                break;
            }
        }
    }
    else if(M.size()==2 && abs(k[0].first-k[1].first)/2>0)
    {
        if(k[0].first>k[1].first)
            cout<<(k[0].first-k[1].first)/2<<" ml. from cup #2 to cup #1.";
        else
            cout<<(k[1].first-k[0].first)/2<<" ml. from cup #1 to cup #2.";
    }
    else
        cout<<"Unrecoverable configuration.";
    return 0;
}


// Disclaimer: Don't copy my template, it may lead to plagiarism.
/* Author: Soumy Jain
   Handle: soumy_jain
   "Beautiful flowers too, eventually wither and fall. That's the fate of all living beings."
   "I hate perfection. To be perfect is to be unable to improve any furthur." - Mayuri Kurotsuchi | Bleach
   "I smile to show the pressure of heroes and to trick the fear inside of me."
   "Gravel may be gravel, but me? I'm the gravel that shatters diamonds."
   "If you were to write a story with me in the lead role, it would certainly be...a TRAGEDY." - Kaneki Ken | Tokyo Ghoul
*/
/******************************************************************************/
#include <bits/stdc++.h>
#define ll        long long
#define ull       unsigned long long
#define SPEEDHACK ios_base::sync_with_stdio(false);cin.tie(NULL);
#define inputv0   for(ll i=0;i<n;i++) cin>>v[i];
#define inputv1   for(ll i=1;i<=n;i++) cin>>v[i];
#define file      freopen("input.txt" , "r" , stdin); freopen("output.txt" , "w" , stdout);
#define MOD       1000000007      // 998244353
using namespace std;
/******************************************************************************/
// Power
ll powmod(ll x, ull y)
{
    if (y == 0) return 1;
    ll p = powmod(x, y/2) % MOD;
    p = (p * p) % MOD;
    return (y%2 == 0)? p : (x * p) % MOD;
}
// Multiplicative Inverse
ll modInverse(ll a)
{  return powmod(a, MOD-2)%MOD;  }
// Least Common Multiple
ll lcm(ll a,ll b)
{  return (a*b)/__gcd(a,b);  }
// Ascending
bool sortbysec(const pair<ll,ll>&a,const pair<ll,ll>&b)
{  return a.second<b.second;  }
// ceil
ll myceil(ll x, ll y)
{  return (x+y-1)/y;  }
// Factorial
ll fact(ll n)
{
    ll f=1;
    for(ll i=2;i<=n;i++)
        f*=i;
    return f;
}
// Prime numbers upto n
void sieve(ll n)
{
    vector<bool>prime(n+1,true);
    for (ll p=2; p*p<=n; p++)
    {
        if (prime[p] == true)
            for (ll i=p*p; i<=n; i += p)
                prime[i] = false;
    }
    for (ll p=2; p<=n; p++)
        if (prime[p])
            cout << p << " ";
}
// Binary Search
ll bs(vector <ll> &v, ll key)
{
	ll r=v.size()-1,l=0;
	while (r >= l)
	{
		ll m = l + (r - l) / 2;
		if (v[m] == key) return m;
		else if (v[m] < key) l = m + 1;
		else r = m - 1;
	}
	return -1;
}
// All distinct factors of a number
vector<ll> factors(ll n)
{
	vector<ll>v;
	for(ll i=1;i*i<=n;i++)
	{
	    if(n%i==0)
		{
			v.push_back(i);
			if(n/i!=i)  v.push_back(n/i);
		}
	}
	return v;
}
// Print vector
void prtvec(vector<ll> &v)
{
    for(auto i: v)
        cout<<i<<" ";
}
/***********************************MAIN***************************************/
// Are you ready to face the wrath of test cases? Good luck noob Soumy!

int main()
{
    SPEEDHACK //file
    ll n;
    cin>>n;
    map<ll,ll> M;
    vector<pair<ll,ll>> k;
    for(ll i=0;i<n;i++)
    {
        ll x;
        cin>>x;
        M[x]++;
        if(M[x]==1)
        {
            k.push_back(make_pair(x,i+1));
        }
    }
    if(M.size()==1)
        cout<<"Exemplary pages.";
    else if(M.size()==3)
    {
        vector<ll> v;
        for(auto i: M)
            v.push_back(i.first);
        sort(v.begin(),v.end());
        cout<<(v[2]-v[0])/2<<" ml. ";
        for(auto i: k)
        {
            if(i.first==v[0])
            {
                cout<<"from cup #"<<i.second<<" ";
                break;
            }
        }
        for(auto i: k)
        {
            if(i.first==v[2])
            {
                cout<<"to cup #"<<i.second<<".";
                break;
            }
        }
    }
    else if(M.size()==2 && abs(k[0].first-k[1].first)/2>0 && n==2)
    {
        if(k[0].first>k[1].first)
            cout<<(k[0].first-k[1].first)/2<<" ml. from cup #2 to cup #1.";
        else
            cout<<(k[1].first-k[0].first)/2<<" ml. from cup #1 to cup #2.";
    }
    else
        cout<<"Unrecoverable configuration.";
    return 0;
}


#include<bits/stdc++.h>
using namespace std;

map<int, int> mp;
pair<int, int> p[1005];

int main() {
    int n;
    cin >> n;
    for(int i = 0; i < n; ++i)
        cin >> p[i].first, p[i].second = i;
    sort(p, p+n);
    int cnt = 0;
    for(int i = 0; i < n; ++i) {
        if(!mp[p[i].first]) ++cnt;
        ++mp[p[i].first];
    }
    if(cnt > 3) cout << "Unrecoverable configuration.";
    else if(cnt == 3) {
        if(mp[p[0].first]==1 && mp[p[n-1].first]==1) {
            if((p[n-1].first-p[0].first)%2) cout << "Unrecoverable configuration.";
            else printf("%d ml. from cup #%d to cup #%d.", (p[n-1].first-p[0].first)/2, p[0].second+1, p[n-1].second+1);
        }
        else cout << "Unrecoverable configuration.";
    }
    else if(cnt == 2) {
        if(n == 2) {
            if((p[n-1].first-p[0].first)%2) cout << "Unrecoverable configuration.";
            else printf("%d ml. from cup #%d to cup #%d.", (p[n-1].first-p[0].first)/2, p[0].second+1, p[n-1].second+1);
        }
        else cout << "Unrecoverable configuration.";
    }
    else cout << "Exemplary pages.";
    return 0;
}


#include<bits/stdc++.h>
using namespace std;

map<int, int> mp;
pair<int, int> p[1005];

int main() {
    int n;
    cin >> n;
    for(int i = 0; i < n; ++i)
        cin >> p[i].first, p[i].second = i;
    sort(p, p+n);
    int cnt = 0;
    for(int i = 0; i < n; ++i) {
        if(!mp[p[i].first]) ++cnt;
        ++mp[p[i].first];
    }
    if(cnt > 3) cout << "Unrecoverable configuration.";
    else if(cnt == 3) {
        if(mp[p[0].first]==1 && mp[p[n-1].first]==1) {
            if((p[n-1].first-p[0].first)%2 || (p[n-1].first-p[0].first)/2!=p[1].first) cout << "Unrecoverable configuration.";
            else printf("%d ml. from cup #%d to cup #%d.", (p[n-1].first-p[0].first)/2, p[0].second+1, p[n-1].second+1);
        }
        else cout << "Unrecoverable configuration.";
    }
    else if(cnt == 2) {
        if(n == 2) {
            if((p[n-1].first-p[0].first)%2) cout << "Unrecoverable configuration.";
            else printf("%d ml. from cup #%d to cup #%d.", (p[n-1].first-p[0].first)/2, p[0].second+1, p[n-1].second+1);
        }
        else cout << "Unrecoverable configuration.";
    }
    else cout << "Exemplary pages.";
    return 0;
}


#include<bits/stdc++.h>
using namespace std;

vector<int> v;
map<int, int> mp;
pair<int, int> p[1005];

int main() {
    int n;
    cin >> n;
    for(int i = 0; i < n; ++i)
        cin >> p[i].first, p[i].second = i;
    sort(p, p+n);
    int cnt = 0;
    for(int i = 0; i < n; ++i) {
        if(!mp[p[i].first]) ++cnt, v.push_back(i);
        ++mp[p[i].first];
    }
    if(cnt > 3) cout << "Unrecoverable configuration.";
    else if(cnt == 3) {
        int x=-1, y=-1;
        if(mp[p[v[0]].first]==1&&mp[p[v[1]].first]==1) x=v[0], y=v[1];
        else if(mp[p[v[0]].first]==1&&mp[p[v[2]].first]==1) x=v[0], y=v[2];
        else if(mp[p[v[2]].first]==1&&mp[p[v[1]].first]==1) x=v[1], y=v[2];
        if(x==-1 && y==-1) cout << "Unrecoverable configuration.";
        else if(mp[p[x].first]==1 && mp[p[y].first]==1) {
            if((p[y].first-p[x].first)%2) cout << "Unrecoverable configuration.";
            else printf("%d ml. from cup #%d to cup #%d.", (p[y].first-p[x].first)/2, p[x].second+1, p[y].second+1);
        }
        else cout << "Unrecoverable configuration.";
    }
    else if(cnt == 2) {
        if(n == 2) {
            if((p[n-1].first-p[0].first)%2) cout << "Unrecoverable configuration.";
            else printf("%d ml. from cup #%d to cup #%d.", (p[n-1].first-p[0].first)/2, p[0].second+1, p[n-1].second+1);
        }
        else cout << "Unrecoverable configuration.";
    }
    else cout << "Exemplary pages.";
    return 0;
}


#include<bits/stdc++.h>
using namespace std;

map<int, int> mp;
pair<int, int> p[1005];

int main() {
    int n;
    cin >> n;
    for(int i = 0; i < n; ++i)
        cin >> p[i].first, p[i].second = i;
    sort(p, p+n);
    int cnt = 0;
    for(int i = 0; i < n; ++i) {
        if(!mp[p[i].first]) ++cnt;
        ++mp[p[i].first];
    }
    if(cnt > 3) cout << "Unrecoverable configuration.";
    else if(cnt == 3) {
        if(mp[p[0].first]==1 && mp[p[n-1].first]==1) {
            if((p[n-1].first-p[0].first)%2 || (p[n-1].first+p[0].first)/2!=p[1].first) cout << "Unrecoverable configuration.";
            else printf("%d ml. from cup #%d to cup #%d.", (p[n-1].first-p[0].first)/2, p[0].second+1, p[n-1].second+1);
        }
        else cout << "Unrecoverable configuration.";
    }
    else if(cnt == 2) {
        if(n == 2) {
            if((p[n-1].first-p[0].first)%2) cout << "Unrecoverable configuration.";
            else printf("%d ml. from cup #%d to cup #%d.", (p[n-1].first-p[0].first)/2, p[0].second+1, p[n-1].second+1);
        }
        else cout << "Unrecoverable configuration.";
    }
    else cout << "Exemplary pages.";
    return 0;
}


#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n;
	cin>>n;
	unordered_map<int,int> m1;
	int arr[n];
	set<int> s1;
	for(int i=0;i<n;i++)
	{
		cin>>arr[i];
		s1.insert(arr[i]);
		m1[arr[i]]=i;
	}
	sort(arr,arr+n);
	if(arr[0]==arr[n-1])
	{
		cout<<"Exemplary pages.";
	}
	else if(s1.size()>3)
	{
		cout<<"Unrecoverable configuration.";
	}
	else
	{
		if(n==2)
		{
			int diff=arr[1]-arr[0];
			int d=diff/2;
			cout<<d<<" ml. from cup #"<<m1[arr[0]]+1<<" to cup #"<<m1[arr[1]]+1<<".";

		}
		else
		{
			int diff=arr[n-1]-arr[0];
			int d=diff/2;
			cout<<d<<" ml. from cup #"<<m1[arr[0]]+1<<" to cup #"<<m1[arr[n-1]]+1<<".";

		}

	}

}


#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n;
	cin>>n;
	unordered_map<int,int> m1;
	int arr[n];
	set<int> s1;
	for(int i=0;i<n;i++)
	{
		cin>>arr[i];
		s1.insert(arr[i]);
		m1[arr[i]]=i;
	}
	sort(arr,arr+n);
	if(arr[0]==arr[n-1])
	{
		cout<<"Exemplary pages.";
	}
	else if(s1.size()>3)
	{
		cout<<"Unrecoverable configuration.";
	}
	else
	{
		if(n==2)
		{
			int diff=arr[1]-arr[0];
			int d=diff/2;
			if((d+arr[0])==(arr[1]-d))
			cout<<d<<" ml. from cup #"<<m1[arr[0]]+1<<" to cup #"<<m1[arr[1]]+1<<".";
			else
			cout<<"Unrecoverable configuration.";

		}
		else
		{
			int diff=arr[n-1]-arr[0];
			int d=diff/2;
			if((d+arr[0])==(arr[n-1]-d)&&((arr[n-1]-d)==arr[1]))
			cout<<d<<" ml. from cup #"<<m1[arr[0]]+1<<" to cup #"<<m1[arr[n-1]]+1<<".";
			else
			cout<<"Unrecoverable configuration.";

		}

	}

}


#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n;
	cin>>n;
	unordered_map<int,int> m1;
	int arr[n];
	set<int> s1;
	for(int i=0;i<n;i++)
	{
		cin>>arr[i];
		s1.insert(arr[i]);
		m1[arr[i]]=i;
	}
	sort(arr,arr+n);
	if(arr[0]==arr[n-1])
	{
		cout<<"Exemplary pages.";
	}
	else if(s1.size()>3)
	{
		cout<<"Unrecoverable configuration.";
	}
	else
	{
		if(n==2)
		{
			int diff=arr[1]-arr[0];
			int d=diff/2;
			if((d+arr[0])==(arr[1]-d))
			cout<<d<<" ml. from cup #"<<m1[arr[0]]+1<<" to cup #"<<m1[arr[1]]+1<<".";
			else
			cout<<"Unrecoverable configuration.";

		}
		else
		{
			int diff=arr[n-1]-arr[0];
			int d=diff/2;
			if((d+arr[0])==(arr[n-1]-d))
			cout<<d<<" ml. from cup #"<<m1[arr[0]]+1<<" to cup #"<<m1[arr[n-1]]+1<<".";
			else
			cout<<"Unrecoverable configuration.";

		}

	}

}


#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n;
	cin>>n;
	unordered_map<int,int> m1;
	int arr[n];
	set<int> s1;
	for(int i=0;i<n;i++)
	{
		cin>>arr[i];
		s1.insert(arr[i]);
		m1[arr[i]]=i;
	}
	sort(arr,arr+n);
	if(arr[0]==arr[n-1])
	{
		cout<<"Exemplary pages.";
	}
	else if(s1.size()>3)
	{
		cout<<"Unrecoverable configuration.";
	}
	else
	{
		if(n==2)
		{
			int diff=arr[1]-arr[0];
			int d=diff/2;
			if((d+arr[0])==(arr[1]-d))
			cout<<d<<" ml. from cup #"<<m1[arr[0]]+1<<" to cup #"<<m1[arr[1]]+1<<".";
			else
			cout<<"Unrecoverable configuration.";

		}
		else
		{
			int diff=arr[n-1]-arr[0];
			int d=diff/2;
			bool flag=true;
			for(int i=1;i<n-1;i++)
			{
				if(arr[i]!=(arr[n-1]-d))
					flag=false;
			}
			if((d+arr[0])==(arr[n-1]-d)&&((flag==true)))
			cout<<d<<" ml. from cup #"<<m1[arr[0]]+1<<" to cup #"<<m1[arr[n-1]]+1<<".";
			else
			cout<<"Unrecoverable configuration.";

		}

	}

}


#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define mxe max_element
#define mne min_element
#define bg begin()
#define nd end()

void swap(int &a,int &b)
{
    int t=a;
    a=b;
    b=t;
    return ;
}

int main()
{
    ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    ll t,n,m;

    cin>>n;
    vector<ll> v(n);
    for(auto &x:v)cin>>x;
    ll sum=accumulate(v.begin(),v.end(),0);

    set<ll> s(v.begin(),v.end());
    if(s.size()==1)cout<<"Exemplary Pages.\n";
    else
    {
        // if(ceil(sum/n)==(sum/n)+1)cout<<"Unrecoverable configuration.\n";
        // else
        {
            vector<ll> sp;
            vector<pair<ll,ll>> vp;
            ll lvl=floor(sum/n);

            for(int i=0;i<n;i++)
            {
                if(v[i]!=lvl)
                {
                    ll fnd=(-1*(lvl-v[i])),a,b;
                    auto k=find(sp.bg,sp.nd,fnd);
                    if(fnd<0)
                    {
                        a=i+1;
                        b=k-sp.begin()+1;
                    }
                    else
                    {
                        b=i+1;
                        a=k-sp.begin()+1;
                    }
                    if(k!=sp.nd)
                    {
                        // cout<<abs(fnd)<<" ml.from cup #"<<a<<" to #"<<b<<"\n";
                        vp.push_back({a,b});
                        sp.erase(k);
                    }
                    else
                    {
                        sp.push_back(-1*fnd);
                    }

                }
            }
            if(sp.empty())
                    {
                        for(auto x:vp)
                            cout<<abs((v[x.first-1]-lvl))<<" ml. from cup #"<<x.first<<" to cup #"<<x.second<<".\n";
                    }
                    else
                    {
                        cout<<"Unrecoverable configuration.\n";


#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define mxe max_element
#define mne min_element
#define bg begin()
#define nd end()

void swap(int &a,int &b)
{
    int t=a;
    a=b;
    b=t;
    return ;
}

int main()
{
    ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    ll t,n,m;

    cin>>n;
    vector<ll> v(n);
    for(auto &x:v)cin>>x;
    ll sum=accumulate(v.begin(),v.end(),0);

    set<ll> s(v.begin(),v.end());
    if(s.size()==1)cout<<"Exemplary Pages.\n";
    else
    {
        vector<ll> sp;
        vector<pair<ll,ll>> vp;
        ll lvl=floor(sum/n);

        for(int i=0;i<n;i++)
        {
            if(v[i]!=lvl)
            {
                ll fnd=(-1*(lvl-v[i])),a,b;
                auto k=find(sp.bg,sp.nd,fnd);
                if(fnd<0)
                {
                    a=i+1;
                    b=k-sp.begin()+1;
                }
                else
                {
                    b=i+1;
                    a=k-sp.begin()+1;
                }
                if(k!=sp.nd)
                {
                    // cout<<abs(fnd)<<" ml.from cup #"<<a<<" to #"<<b<<"\n";
                    vp.push_back({a,b});
                    sp.erase(k);
                }
                else
                {
                    sp.push_back(-1*fnd);
                }

            }
        }
        if(sp.empty())
            {
                for(auto x:vp)
                    cout<<abs((v[x.first-1]-lvl))<<" ml. from cup #"<<x.first<<" to cup #"<<x.second<<".\n";
            }
            else
            {
                cout<<"Unrecoverable configuration.\n";
            }
    }

    return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define mxe max_element
#define mne min_element
#define bg begin()
#define nd end()

void swap(int &a,int &b)
{
    int t=a;
    a=b;
    b=t;
    return ;
}

int main()
{
    ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    ll t,n,m;

    cin>>n;
    vector<ll> v(n);
    for(auto &x:v)cin>>x;
    ll sum=accumulate(v.begin(),v.end(),0);

    set<ll> s(v.begin(),v.end());
    if(s.size()==1)cout<<"Exemplary pages.\n";
    else
    {
        vector<ll> sp;
        vector<pair<ll,ll>> vp;
        ll lvl=floor(sum/n);

        for(int i=0;i<n;i++)
        {
            if(v[i]!=lvl)
            {
                ll fnd=(-1*(lvl-v[i])),a,b;
                auto k=find(sp.bg,sp.nd,fnd);
                if(fnd<0)
                {
                    a=i+1;
                    b=k-sp.begin()+1;
                }
                else
                {
                    b=i+1;
                    a=k-sp.begin()+1;
                }
                if(k!=sp.nd)
                {
                    // cout<<abs(fnd)<<" ml.from cup #"<<a<<" to #"<<b<<"\n";
                    vp.push_back({a,b});
                    sp.erase(k);
                }
                else
                {
                    sp.push_back(-1*fnd);
                }

            }
        }
        if(sp.empty())
            {
                for(auto x:vp)
                    cout<<abs((v[x.first-1]-lvl))<<" ml. from cup #"<<x.first<<" to cup #"<<x.second<<".\n";
            }
            else
            {
                cout<<"Unrecoverable configuration.\n";
            }
    }

    return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define mxe max_element
#define mne min_element
#define bg begin()
#define nd end()

void swap(int &a,int &b)
{
    int t=a;
    a=b;
    b=t;
    return ;
}

int main()
{
    ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    ll t,n,m;

    cin>>n;
    vector<ll> v(n);
    for(auto &x:v)cin>>x;
    ll sum=accumulate(v.begin(),v.end(),0);

    set<ll> s(v.begin(),v.end());
    if(s.size()==1)cout<<"Exemplary pages.\n";
    else if(sum%n!=0)cout<<"Unrecoverable configuration.\n";
    else
    {
        vector<ll> sp;
        vector<pair<pair<ll,ll>,ll>> vp;
        ll lvl=floor(sum/n);

        for(int i=0;i<v.size();i++)
        {
            if(v[i]!=lvl)
            {
                ll fnd=(-1*(lvl-v[i])),a,b;
                // cout<<v[i]<<":"<<fnd<<"\n";
                auto k=find(v.bg,v.nd,lvl-fnd);
                // cout<<*k<<"\n";
                if(fnd<0)
                {
                    a=i+1;
                    b=k-v.begin()+1;
                }
                else
                {
                    b=i+1;
                    a=k-v.begin()+1;
                }
                if(k!=v.nd)
                {
                    // cout<<abs(fnd)<<" ml.from cup #"<<a<<" to #"<<b<<"\n";
                    vp.push_back({{a,b},abs(lvl-v[a-1])});
                    v[a-1]=lvl;
                    v[b-1]=lvl;

                }
                else
                {
                    // sp.push_back(-1*fnd);
                    break;
                }

            }
        }
        set<ll> fs(v.begin(),v.end());
        if(vp.size()==1)
            {
                for(auto x:vp)
                    cout<<x.second<<" ml. from cup #"<<x.first.first<<" to cup #"<<x.first.second<<".\n";
            }
            else
            {
                cout<<"Unrecoverable configuration.\n";
            }
    }

    return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define mxe max_element
#define mne min_element
#define bg begin()
#define nd end()

void swap(int &a,int &b)
{
    int t=a;
    a=b;
    b=t;
    return ;
}

int main()
{
    ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    ll t,n,m;

    cin>>n;
    vector<ll> v(n);
    for(auto &x:v)cin>>x;
    ll sum=accumulate(v.begin(),v.end(),0);

    set<ll> s(v.begin(),v.end());
    if(s.size()==1)cout<<"Exemplary Pages.\n";
    else
    {
        // if(ceil(sum/n)==(sum/n)+1)cout<<"Unrecoverable configuration.\n";
        // else
        {
            vector<ll> sp;
            vector<pair<ll,ll>> vp;
            ll lvl=floor(sum/n);

            for(int i=0;i<n;i++)
            {
                if(v[i]!=lvl)
                {
                    ll fnd=(-1*(lvl-v[i])),a,b;
                    auto k=find(sp.bg,sp.nd,fnd);
                    if(fnd<0)
                    {
                        a=i+1;
                        b=k-sp.begin()+1;
                    }
                    else
                    {
                        b=i+1;
                        a=k-sp.begin()+1;
                    }
                    if(k!=sp.nd)
                    {
                        // cout<<abs(fnd)<<" ml.from cup #"<<a<<" to #"<<b<<"\n";
                        vp.push_back({a,b});
                        sp.erase(k);
                    }
                    else
                    {
                        sp.push_back(-1*fnd);
                    }

                }
            }
            if(sp.empty())
                    {
                        for(auto x:vp)
                            cout<<abs(x.first-lvl)<<" ml.from cup #"<<x.first<<" to #"<<x.second<<"\n";
                    }
                    else
                    {
                        cout<<"Unrecoverable configuration.\n";
                    }
        }
    }

    return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define mxe max_element
#define mne min_element
#define bg begin()
#define nd end()

void swap(int &a,int &b)
{
    int t=a;
    a=b;
    b=t;
    return ;
}

int main()
{
    ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    ll t,n,m;

    cin>>n;
    vector<ll> v(n);
    for(auto &x:v)cin>>x;
    ll sum=accumulate(v.begin(),v.end(),0);

    set<ll> s(v.begin(),v.end());
    if(s.size()==1)cout<<"Exemplary Pages.\n";
    else
    {
        // if(ceil(sum/n)==(sum/n)+1)cout<<"Unrecoverable configuration.\n";
        // else
        {
            vector<ll> sp;
            vector<pair<ll,ll>> vp;
            ll lvl=floor(sum/n);

            for(int i=0;i<n;i++)
            {
                if(v[i]!=lvl)
                {
                    ll fnd=(-1*(lvl-v[i])),a,b;
                    auto k=find(sp.bg,sp.nd,fnd);
                    if(fnd<0)
                    {
                        a=i+1;
                        b=k-sp.begin()+1;
                    }
                    else
                    {
                        b=i+1;
                        a=k-sp.begin()+1;
                    }
                    if(k!=sp.nd)
                    {
                        // cout<<abs(fnd)<<" ml.from cup #"<<a<<" to #"<<b<<"\n";
                        vp.push_back({a,b});
                        sp.erase(k);
                    }
                    else
                    {
                        sp.push_back(-1*fnd);
                    }

                }
            }
            if(sp.empty())
                    {
                        for(auto x:vp)
                            cout<<abs((v[x.first-1]-lvl))<<" ml. from cup #"<<x.first<<" to #"<<x.second<<"\n";
                    }
                    else
                    {
                        cout<<"Unrecoverable configuration.\n";
                    }
        }
    }

    return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define mxe max_element
#define mne min_element
#define bg begin()
#define nd end()

void swap(int &a,int &b)
{
    int t=a;
    a=b;
    b=t;
    return ;
}

int main()
{
    ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    ll t,n,m;

    cin>>n;
    vector<ll> v(n);
    for(auto &x:v)cin>>x;
    ll sum=accumulate(v.begin(),v.end(),0);

    set<ll> s(v.begin(),v.end());
    if(s.size()==1)cout<<"Exemplary pages.\n";
    else
    {
        vector<ll> sp;
        vector<pair<pair<ll,ll>,ll>> vp;
        ll lvl=floor(sum/n);

        for(int i=0;i<v.size();i++)
        {
            if(v[i]!=lvl)
            {
                ll fnd=(-1*(lvl-v[i])),a,b;
                // cout<<v[i]<<":"<<fnd<<"\n";
                auto k=find(v.bg,v.nd,lvl-fnd);
                // cout<<*k<<"\n";
                if(fnd<0)
                {
                    a=i+1;
                    b=k-v.begin()+1;
                }
                else
                {
                    b=i+1;
                    a=k-v.begin()+1;
                }
                if(k!=v.nd)
                {
                    // cout<<abs(fnd)<<" ml.from cup #"<<a<<" to #"<<b<<"\n";
                    vp.push_back({{a,b},abs(lvl-v[a-1])});
                    v[a-1]=lvl;
                    v[b-1]=lvl;

                }
                else
                {
                    // sp.push_back(-1*fnd);
                    break;
                }

            }
        }
        set<ll> fs(v.begin(),v.end());
        if(fs.size()==1)
            {
                for(auto x:vp)
                    cout<<x.second<<" ml. from cup #"<<x.first.first<<" to cup #"<<x.first.second<<".\n";
            }
            else
            {
                cout<<"Unrecoverable configuration.\n";
            }
    }

    return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define mxe max_element
#define mne min_element
#define bg begin()
#define nd end()

void swap(int &a,int &b)
{
    int t=a;
    a=b;
    b=t;
    return ;
}

int main()
{
    ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    ll t,n,m;

    cin>>n;
    vector<ll> v(n);
    for(auto &x:v)cin>>x;
    ll sum=accumulate(v.begin(),v.end(),0);

    set<ll> s(v.begin(),v.end());
    if(s.size()==1)cout<<"Exemplary pages.\n";
    else
    {
        vector<ll> sp;
        vector<pair<pair<ll,ll>,ll>> vp;
        ll lvl=floor(sum/n);

        for(int i=0;i<v.size();i++)
        {
            if(v[i]!=lvl)
            {
                ll fnd=(-1*(lvl-v[i])),a,b;
                // cout<<v[i]<<":"<<fnd<<"\n";
                auto k=find(v.bg,v.nd,lvl-fnd);
                // cout<<*k<<"\n";
                if(fnd<0)
                {
                    a=i+1;
                    b=k-v.begin()+1;
                }
                else
                {
                    b=i+1;
                    a=k-v.begin()+1;
                }
                if(k!=v.nd)
                {
                    // cout<<abs(fnd)<<" ml.from cup #"<<a<<" to #"<<b<<"\n";
                    vp.push_back({{a,b},abs(lvl-v[a-1])});
                    v[a-1]=lvl;
                    v[b-1]=lvl;

                }
                else
                {
                    // sp.push_back(-1*fnd);
                    break;
                }

            }
        }
        set<ll> fs(v.begin(),v.end());
        if(vp.size()==1)
            {
                for(auto x:vp)
                    cout<<x.second<<" ml. from cup #"<<x.first.first<<" to cup #"<<x.first.second<<".\n";
            }
            else
            {
                cout<<"Unrecoverable configuration.\n";
            }
    }

    return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define mxe max_element
#define mne min_element
#define bg begin()
#define nd end()

void swap(int &a,int &b)
{
    int t=a;
    a=b;
    b=t;
    return ;
}

int main()
{
    ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    ll t,n,m;

    cin>>n;
    vector<ll> v(n);
    for(auto &x:v)cin>>x;
    ll sum=accumulate(v.begin(),v.end(),0);

    set<ll> s(v.begin(),v.end());
    if(s.size()==1)cout<<"Exemplary Pages.\n";
    else
    {
        // if(ceil(sum/n)==(sum/n)+1)cout<<"Unrecoverable configuration.\n";
        // else
        {
            vector<ll> sp;
            vector<pair<ll,ll>> vp;
            ll lvl=floor(sum/n);

            for(int i=0;i<n;i++)
            {
                if(v[i]!=lvl)
                {
                    ll fnd=(-1*(lvl-v[i])),a,b;
                    auto k=find(sp.bg,sp.nd,fnd);
                    if(fnd<0)
                    {
                        a=i+1;
                        b=k-sp.begin()+1;
                    }
                    else
                    {
                        b=i+1;
                        a=k-sp.begin()+1;
                    }
                    if(k!=sp.nd)
                    {
                        // cout<<abs(fnd)<<" ml.from cup #"<<a<<" to #"<<b<<"\n";
                        vp.push_back({a,b});
                        sp.erase(k);
                    }
                    else
                    {
                        sp.push_back(-1*fnd);
                    }

                }
            }
            if(sp.empty())
                    {
                        for(auto x:vp)
                            cout<<abs((v[x.first-1]-lvl))<<" ml. from cup #"<<x.first<<" to cup #"<<x.second<<"\n";
                    }
                    else
                    {
                        cout<<"Unrecoverable configuration.\n";
                    }
        }
    }

    return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define mxe max_element
#define mne min_element
#define bg begin()
#define nd end()

void swap(int &a,int &b)
{
    int t=a;
    a=b;
    b=t;
    return ;
}

int main()
{
    ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    ll t,n,m;

    cin>>n;
    vector<ll> v(n);
    for(auto &x:v)cin>>x;
    ll sum=accumulate(v.begin(),v.end(),0);

    set<ll> s(v.begin(),v.end());
    if(s.size()==1)cout<<"Exemplary Pages.\n";
    else
    {
        // if(ceil(sum/n)==(sum/n)+1)cout<<"Unrecoverable configuration.\n";
        // else
        {
            vector<ll> sp;
            vector<pair<ll,ll>> vp;
            ll lvl=floor(sum/n);

            for(int i=0;i<n;i++)
            {
                if(v[i]!=lvl)
                {
                    ll fnd=(-1*(lvl-v[i])),a,b;
                    auto k=find(sp.bg,sp.nd,fnd);
                    if(fnd<0)
                    {
                        a=i+1;
                        b=k-sp.begin()+1;
                    }
                    else
                    {
                        b=i+1;
                        a=k-sp.begin()+1;
                    }
                    if(k!=sp.nd)
                    {
                        // cout<<abs(fnd)<<" ml.from cup #"<<a<<" to #"<<b<<"\n";
                        vp.push_back({a,b});
                        sp.erase(k);
                    }
                    else
                    {
                        sp.push_back(-1*fnd);
                    }

                }
            }
            if(sp.empty())
                    {
                        for(auto x:vp)
                            cout<<abs((v[x.first-1]-lvl))<<" ml.from cup #"<<x.first<<" to #"<<x.second<<"\n";
                    }
                    else
                    {
                        cout<<"Unrecoverable configuration.\n";
                    }
        }
    }

    return 0;
}


#pragma GCC optimize ("O3")
#pragma GCC target ("sse4")
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
typedef vector<int> vi;
typedef pair<int, int> pi;
#define debug(x) cerr << #x << ": " << x << endl;
#define debug2(x, y) debug(x) debug(y);
#define repn(i, a, b) for(int i = (int)(a); i < (int)(b); i++)
#define rep(i, a) for(int i = 0; i < (int)(a); i++)
#define all(v) v.begin(), v.end()
#define mp make_pair
#define pb push_back
#define lb lower_bound
#define ub upper_bound
#define fi first
#define se second
#define sq(x) ((x) * (x))

template<class T> T gcd(T a, T b){ return ((b == 0) ? a : gcd(b, a % b)); }

int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	//freopen("input.in", "r", stdin);
	//freopen("output.out", "w", stdout);
	int n;
	cin >> n;
	vi a(n), b(n);
	set<int> st;
	rep(i, n) cin >> a[i], st.insert(a[i]), b[i] = a[i];
	sort(all(b));
	int f = 1;
	repn(i, 1, n) if(b[i] != b[i - 1]) f = 0;
	if(f){
		cout << "Exemplary pages." << endl;
		return 0;
	}
	if(st.size() > 3){
		cout << "Unrecoverable configuration." << endl;
		return 0;
	}
	rep(i, n) rep(j, n) if(a[i] != a[j]){
		if((a[i] + a[j]) % 2 != 0){
			cout << "Unrecoverable configuration." << endl;
			return 0;
		}
		int mid = (a[i] + a[j]) / 2;
		if(st.find(mid) != st.end()){
			cout << abs(a[i] - a[j]) / 2 <<  " ml. from cup #" << (a[i] > a[j] ? j : i) + 1 << " to cup #" << (a[j] > a[i] ? j : i) + 1 << "." << endl;
			return 0;
		}
	}
	return 0;
}
/*
Things to look out for:
	- Integer overflows
	- Array bounds
	- Special cases
Be careful!
*/


#pragma GCC optimize ("O3")
#pragma GCC target ("sse4")
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
typedef vector<int> vi;
typedef pair<int, int> pi;
#define debug(x) cerr << #x << ": " << x << endl;
#define debug2(x, y) debug(x) debug(y);
#define repn(i, a, b) for(int i = (int)(a); i < (int)(b); i++)
#define rep(i, a) for(int i = 0; i < (int)(a); i++)
#define all(v) v.begin(), v.end()
#define mp make_pair
#define pb push_back
#define lb lower_bound
#define ub upper_bound
#define fi first
#define se second
#define sq(x) ((x) * (x))

template<class T> T gcd(T a, T b){ return ((b == 0) ? a : gcd(b, a % b)); }

int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	//freopen("input.in", "r", stdin);
	//freopen("output.out", "w", stdout);
	int n;
	cin >> n;
	vi a(n), b(n);
	set<int> st;
	rep(i, n) cin >> a[i], st.insert(a[i]), b[i] = a[i];
	sort(all(b));
	int f = 1;
	repn(i, 1, n) if(b[i] != b[i - 1]) f = 0;
	if(f){
		cout << "Exemplary pages." << endl;
		return 0;
	}
	if(st.size() > 3){
		cout << "Unrecoverable configuration." << endl;
		return 0;
	}
	rep(i, n) rep(j, n) if(a[i] != a[j]){
		int mid = (a[i] + a[j]) / 2;
		if(st.find(mid) != st.end() || n <= 2 && (a[i] + a[j]) % 2 == 0){
			cout << abs(a[i] - a[j]) / 2 <<  " ml. from cup #" << (a[i] > a[j] ? j : i) + 1 << " to cup #" << (a[j] > a[i] ? j : i) + 1 << "." << endl;
			return 0;
		}
	}
	cout << "Unrecoverable configuration." << endl;
	return 0;
}
/*
Things to look out for:
	- Integer overflows
	- Array bounds
	- Special cases
Be careful!
*/


#pragma GCC optimize ("O3")
#pragma GCC target ("sse4")
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
typedef vector<int> vi;
typedef pair<int, int> pi;
#define debug(x) cerr << #x << ": " << x << endl;
#define debug2(x, y) debug(x) debug(y);
#define repn(i, a, b) for(int i = (int)(a); i < (int)(b); i++)
#define rep(i, a) for(int i = 0; i < (int)(a); i++)
#define all(v) v.begin(), v.end()
#define mp make_pair
#define pb push_back
#define lb lower_bound
#define ub upper_bound
#define fi first
#define se second
#define sq(x) ((x) * (x))

template<class T> T gcd(T a, T b){ return ((b == 0) ? a : gcd(b, a % b)); }

int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	//freopen("input.in", "r", stdin);
	//freopen("output.out", "w", stdout);
	int n;
	cin >> n;
	vi a(n), b(n);
	set<int> st;
	rep(i, n) cin >> a[i], st.insert(a[i]), b[i] = a[i];
	sort(all(b));
	int f = 1;
	repn(i, 1, n) if(b[i] != b[i - 1]) f = 0;
	if(f){
		cout << "Exemplary pages." << endl;
		return 0;
	}
	if(st.size() > 3){
		cout << "Unrecoverable configuration." << endl;
		return 0;
	}
	rep(i, n) rep(j, n) if(a[i] != a[j]){
		if((a[i] + a[j]) % 2 != 0){
			cout << "Unrecoverable configuration." << endl;
			return 0;
		}
		int mid = (a[i] + a[j]) / 2;
		if(st.find(mid) != st.end()){
			cout << abs(a[i] - a[j]) / 2 <<  " ml. from cup #" << i + 1 << " to cup #" << j + 1 << "." << endl;
			return 0;
		}
	}
	return 0;
}
/*
Things to look out for:
	- Integer overflows
	- Array bounds
	- Special cases
Be careful!
*/


#pragma GCC optimize ("O3")
#pragma GCC target ("sse4")
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
typedef vector<int> vi;
typedef pair<int, int> pi;
#define debug(x) cerr << #x << ": " << x << endl;
#define debug2(x, y) debug(x) debug(y);
#define repn(i, a, b) for(int i = (int)(a); i < (int)(b); i++)
#define rep(i, a) for(int i = 0; i < (int)(a); i++)
#define all(v) v.begin(), v.end()
#define mp make_pair
#define pb push_back
#define lb lower_bound
#define ub upper_bound
#define fi first
#define se second
#define sq(x) ((x) * (x))

template<class T> T gcd(T a, T b){ return ((b == 0) ? a : gcd(b, a % b)); }

int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	//freopen("input.in", "r", stdin);
	//freopen("output.out", "w", stdout);
	int n;
	cin >> n;
	vi a(n), b(n);
	set<int> st;
	multiset<int> st1;
	rep(i, n) cin >> a[i], st.insert(a[i]), b[i] = a[i], st1.insert(a[i]);
	sort(all(b));
	int f = 1;
	repn(i, 1, n) if(b[i] != b[i - 1]) f = 0;
	if(f){
		cout << "Exemplary pages." << endl;
		return 0;
	}
	if(st.size() > 3){
		cout << "Unrecoverable configuration." << endl;
		return 0;
	}
	rep(i, n) rep(j, n) if(a[i] != a[j]){
		int mid = (a[i] + a[j]) / 2;
		if((st.find(mid) != st.end() || n <= 2) && (a[i] + a[j]) % 2 == 0 && st1.count(a[i]) == 1 && st1.count(a[j]) == 1){
			cout << abs(a[i] - a[j]) / 2 <<  " ml. from cup #" << (a[i] > a[j] ? j : i) + 1 << " to cup #" << (a[j] > a[i] ? j : i) + 1 << "." << endl;
			return 0;
		}
	}
	cout << "Unrecoverable configuration." << endl;
	return 0;
}
/*
Things to look out for:
	- Integer overflows
	- Array bounds
	- Special cases
Be careful!
*/


#pragma GCC optimize ("O3")
#pragma GCC target ("sse4")
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
typedef vector<int> vi;
typedef pair<int, int> pi;
#define debug(x) cerr << #x << ": " << x << endl;
#define debug2(x, y) debug(x) debug(y);
#define repn(i, a, b) for(int i = (int)(a); i < (int)(b); i++)
#define rep(i, a) for(int i = 0; i < (int)(a); i++)
#define all(v) v.begin(), v.end()
#define mp make_pair
#define pb push_back
#define lb lower_bound
#define ub upper_bound
#define fi first
#define se second
#define sq(x) ((x) * (x))

template<class T> T gcd(T a, T b){ return ((b == 0) ? a : gcd(b, a % b)); }

int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	//freopen("input.in", "r", stdin);
	//freopen("output.out", "w", stdout);
	int n;
	cin >> n;
	vi a(n), b(n);
	set<int> st;
	rep(i, n) cin >> a[i], st.insert(a[i]), b[i] = a[i];
	sort(all(b));
	int f = 1;
	repn(i, 1, n) if(b[i] != b[i - 1]) f = 0;
	if(f){
		cout << "Exemplary pages." << endl;
		return 0;
	}
	if(st.size() > 3){
		cout << "Unrecoverable configuration." << endl;
		return 0;
	}
	rep(i, n) rep(j, n) if(a[i] != a[j]){
		if((a[i] + a[j]) % 2 != 0){
			cout << "Unrecoverable configuration." << endl;
			return 0;
		}
		int mid = (a[i] + a[j]) / 2;
		if(st.find(mid) != st.end()){
			cout << abs(a[i] - a[j]) / 2 <<  " ml. from cup #" << (a[i] > a[j] ? i : j) + 1 << " to cup #" << (a[j] > a[i] ? i : j) + 1 << "." << endl;
			return 0;
		}
	}
	return 0;
}
/*
Things to look out for:
	- Integer overflows
	- Array bounds
	- Special cases
Be careful!
*/


#pragma GCC optimize ("O3")
#pragma GCC target ("sse4")
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
typedef vector<int> vi;
typedef pair<int, int> pi;
#define debug(x) cerr << #x << ": " << x << endl;
#define debug2(x, y) debug(x) debug(y);
#define repn(i, a, b) for(int i = (int)(a); i < (int)(b); i++)
#define rep(i, a) for(int i = 0; i < (int)(a); i++)
#define all(v) v.begin(), v.end()
#define mp make_pair
#define pb push_back
#define lb lower_bound
#define ub upper_bound
#define fi first
#define se second
#define sq(x) ((x) * (x))

template<class T> T gcd(T a, T b){ return ((b == 0) ? a : gcd(b, a % b)); }

int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	//freopen("input.in", "r", stdin);
	//freopen("output.out", "w", stdout);
	int n;
	cin >> n;
	vi a(n), b(n);
	set<int> st;
	rep(i, n) cin >> a[i], st.insert(a[i]), b[i] = a[i];
	sort(all(b));
	int f = 1;
	repn(i, 1, n) if(b[i] != b[i - 1]) f = 0;
	if(f){
		cout << "Exemplary pages." << endl;
		return 0;
	}
	if(st.size() > 3){
		cout << "Unrecoverable configuration." << endl;
		return 0;
	}
	rep(i, n) rep(j, n) if(a[i] != a[j]){
		int mid = (a[i] + a[j]) / 2;
		if((st.find(mid) != st.end() || n <= 2) && (a[i] + a[j]) % 2 == 0){
			cout << abs(a[i] - a[j]) / 2 <<  " ml. from cup #" << (a[i] > a[j] ? j : i) + 1 << " to cup #" << (a[j] > a[i] ? j : i) + 1 << "." << endl;
			return 0;
		}
	}
	cout << "Unrecoverable configuration." << endl;
	return 0;
}
/*
Things to look out for:
	- Integer overflows
	- Array bounds
	- Special cases
Be careful!
*/


#pragma GCC optimize ("O3")
#pragma GCC target ("sse4")
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
typedef vector<int> vi;
typedef pair<int, int> pi;
#define debug(x) cerr << #x << ": " << x << endl;
#define debug2(x, y) debug(x) debug(y);
#define repn(i, a, b) for(int i = (int)(a); i < (int)(b); i++)
#define rep(i, a) for(int i = 0; i < (int)(a); i++)
#define all(v) v.begin(), v.end()
#define mp make_pair
#define pb push_back
#define lb lower_bound
#define ub upper_bound
#define fi first
#define se second
#define sq(x) ((x) * (x))

template<class T> T gcd(T a, T b){ return ((b == 0) ? a : gcd(b, a % b)); }

int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	//freopen("input.in", "r", stdin);
	//freopen("output.out", "w", stdout);
	int n;
	cin >> n;
	vi a(n), b(n);
	set<int> st;
	rep(i, n) cin >> a[i], st.insert(a[i]), b[i] = a[i];
	sort(all(b));
	int f = 1;
	repn(i, 1, n) if(b[i] != b[i - 1]) f = 0;
	if(f){
		cout << "Exemplary pages." << endl;
		return 0;
	}
	if(st.size() > 3){
		cout << "Unrecoverable configuration." << endl;
		return 0;
	}
	rep(i, n) rep(j, n) if(a[i] != a[j]){
		if((a[i] + a[j]) % 2 != 0){
			cout << "Unrecoverable configuration." << endl;
			return 0;
		}
		int mid = (a[i] + a[j]) / 2;
		if(st.find(mid) != st.end() || st.size() == 2){
			cout << abs(a[i] - a[j]) / 2 <<  " ml. from cup #" << (a[i] > a[j] ? j : i) + 1 << " to cup #" << (a[j] > a[i] ? j : i) + 1 << "." << endl;
			return 0;
		}
	}
	return 0;
}
/*
Things to look out for:
	- Integer overflows
	- Array bounds
	- Special cases
Be careful!
*/


#pragma GCC optimize ("O3")
#pragma GCC target ("sse4")
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
typedef vector<int> vi;
typedef pair<int, int> pi;
#define debug(x) cerr << #x << ": " << x << endl;
#define debug2(x, y) debug(x) debug(y);
#define repn(i, a, b) for(int i = (int)(a); i < (int)(b); i++)
#define rep(i, a) for(int i = 0; i < (int)(a); i++)
#define all(v) v.begin(), v.end()
#define mp make_pair
#define pb push_back
#define lb lower_bound
#define ub upper_bound
#define fi first
#define se second
#define sq(x) ((x) * (x))

template<class T> T gcd(T a, T b){ return ((b == 0) ? a : gcd(b, a % b)); }

int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	//freopen("input.in", "r", stdin);
	//freopen("output.out", "w", stdout);
	int n;
	cin >> n;
	vi a(n), b(n);
	set<int> st;
	rep(i, n) cin >> a[i], st.insert(a[i]), b[i] = a[i];
	sort(all(b));
	int f = 1;
	repn(i, 1, n) if(b[i] != b[i - 1]) f = 0;
	if(f){
		cout << "Exemplary pages." << endl;
		return 0;
	}
	if(st.size() > 3){
		cout << "Unrecoverable configuration." << endl;
		return 0;
	}
	rep(i, n) rep(j, n) if(a[i] != a[j]){
		if((a[i] + a[j]) % 2 != 0){
			cout << "Unrecoverable configuration." << endl;
			return 0;
		}
		int mid = (a[i] + a[j]) / 2;
		if(st.find(mid) != st.end() || n <= 2){
			cout << abs(a[i] - a[j]) / 2 <<  " ml. from cup #" << (a[i] > a[j] ? j : i) + 1 << " to cup #" << (a[j] > a[i] ? j : i) + 1 << "." << endl;
			return 0;
		}
	}
	return 0;
}
/*
Things to look out for:
	- Integer overflows
	- Array bounds
	- Special cases
Be careful!
*/


#pragma GCC optimize ("O3")
#pragma GCC target ("sse4")
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
typedef vector<int> vi;
typedef pair<int, int> pi;
#define debug(x) cerr << #x << ": " << x << endl;
#define debug2(x, y) debug(x) debug(y);
#define repn(i, a, b) for(int i = (int)(a); i < (int)(b); i++)
#define rep(i, a) for(int i = 0; i < (int)(a); i++)
#define all(v) v.begin(), v.end()
#define mp make_pair
#define pb push_back
#define lb lower_bound
#define ub upper_bound
#define fi first
#define se second
#define sq(x) ((x) * (x))

template<class T> T gcd(T a, T b){ return ((b == 0) ? a : gcd(b, a % b)); }

int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	//freopen("input.in", "r", stdin);
	//freopen("output.out", "w", stdout);
	int n;
	cin >> n;
	vi a(n), b(n);
	set<int> st;
	rep(i, n) cin >> a[i], st.insert(a[i]), b[i] = a[i];
	sort(all(b));
	int f = 1;
	repn(i, 1, n) if(b[i] != b[i - 1]) f = 0;
	if(f){
		cout << "Exemplary pages." << endl;
		return 0;
	}
	if(st.size() > 3){
		cout << "Unrecoverable configuration." << endl;
		return 0;
	}
	rep(i, n) rep(j, n) if(a[i] != a[j]){
		if((a[i] + a[j]) % 2 != 0){
			cout << "Unrecoverable configuration." << endl;
			return 0;
		}
		int mid = (a[i] + a[j]) / 2;
		if(st.find(mid) != st.end() || n <= 2){
			cout << abs(a[i] - a[j]) / 2 <<  " ml. from cup #" << (a[i] > a[j] ? j : i) + 1 << " to cup #" << (a[j] > a[i] ? j : i) + 1 << "." << endl;
			return 0;
		}
	}
	cout << "Unrecoverable configuration." << endl;
	return 0;
}
/*
Things to look out for:
	- Integer overflows
	- Array bounds
	- Special cases
Be careful!
*/


///HELLO THERE~!
///CREATED BY MD SADMAN MEHEDI SIVAN(IUT CSE-SWE^19)

#include <bits/stdc++.h>

#define fastio ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define read freopen("blue.txt","r",stdin);
#define write freopen("red.txt","w",stdout);
#define pie 2*acos(0.0);

typedef long long ll;

using namespace std;

int main()
{
    ll n;
    cin>>n;

    int sivan[n+1];
    set<int>s;
    map<int,int>mp;
      map<int,int>::iterator it;
    it=v.begin();
    it++;
    vector<pair<int,int>>v;

    for(int i=0; i<n; i++)
    {
        cin>>sivan[i];
        s.insert(sivan[i]);
        v.push_back(make_pair(sivan[i],i));
        mp[sivan[i]]++;
    }
    sort(v.begin(),v.end());
    int a=v[0].first;
    int b=v[v.size()-1].first;
    int c=v[1].first;

    if(s.size()==1)
        cout<<"Exemplary pages.";

    else if(s.size()==3 && mp[a]==1 &&  mp[b]==1 && c-a==b-c)
    {

        cout<<v[v.size()-2].first-v[0].first<<" ml. from cup #"<<v[0].second+1<<" to cup #"<<1+v[v.size()-1].second<<".";

    }
    else if(v.size()==2 && (v[0].first+v[1].first)%2==0)
    {
          cout<<(v[1].first-v[0].first)/2<<" ml. from cup #"<<v[0].second+1<<" to cup #"<<1+v[v.size()-1].second<<".";
    }
    else
        cout<<"Unrecoverable configuration.";

    return 0;

}


///HELLO THERE~!
///CREATED BY MD SADMAN MEHEDI SIVAN(IUT CSE-SWE^19)

#include <bits/stdc++.h>

#define fastio ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define read freopen("blue.txt","r",stdin);
#define write freopen("red.txt","w",stdout);
#define pie 2*acos(0.0);

typedef long long ll;

using namespace std;

int main()
{
    ll n;
    cin>>n;

    int sivan[n+1];
    set<int>s;
    map<int,int>mp;
    vector<pair<int,int>>v;

    for(int i=0; i<n; i++)
    {
        cin>>sivan[i];
        s.insert(sivan[i]);
        v.push_back(make_pair(sivan[i],i));
        mp[sivan[i]]++;
    }
    sort(v.begin(),v.end());
    int a=v[0].first;
    int b=v[v.size()-1].first;

    if(s.size()==1)
        cout<<"Exemplary pages.";

    else if(s.size()==3 && mp[a]==1 &&  mp[b]==1)
    {

        cout<<v[v.size()-2].first-v[0].first<<" ml. from cup #"<<v[0].second+1<<" to cup #"<<1+v[v.size()-1].second<<".";

    }
    else if(v.size()==2 && (v[0].first+v[1].first)%2==0)
    {
          cout<<(v[1].first-v[0].first)/2<<" ml. from cup #"<<v[0].second+1<<" to cup #"<<1+v[v.size()-1].second<<".";
    }
    else
        cout<<"Unrecoverable configuration.";

    return 0;

}


///HELLO THERE~!
///CREATED BY MD SADMAN MEHEDI SIVAN(IUT CSE-SWE^19)

#include <bits/stdc++.h>

#define fastio ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define read freopen("blue.txt","r",stdin);
#define write freopen("red.txt","w",stdout);
#define pie 2*acos(0.0);

typedef long long ll;

using namespace std;

int main()
{
    ll n;
    cin>>n;

    int sivan[n+1];
    set<int>s;
    vector<pair<int,int>>v;

    for(int i=0; i<n; i++)
    {
        cin>>sivan[i];
        s.insert(sivan[i]);
        v.push_back(make_pair(sivan[i],i));
    }

    if(s.size()==1)
        cout<<"Exemplary pages.";

    else if(s.size()==3)
    {
        sort(v.begin(),v.end());
        cout<<v[v.size()-2].first-v[0].first<<" ml. from cup #"<<v[0].second+1<<" to cup #"<<1+v[v.size()-1].second<<".";

    }
    else
        cout<<"Unrecoverable configuration.";

    return 0;

}


///HELLO THERE~!
///CREATED BY MD SADMAN MEHEDI SIVAN(IUT CSE-SWE^19)

#include <bits/stdc++.h>

#define fastio ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define read freopen("blue.txt","r",stdin);
#define write freopen("red.txt","w",stdout);
#define pie 2*acos(0.0);

typedef long long ll;

using namespace std;

int main()
{
    ll n;
    cin>>n;

    int sivan[n+1];
    set<int>s;
    map<int,int>mp;

    vector<pair<int,int>>v;

    for(int i=0; i<n; i++)
    {
        cin>>sivan[i];
        s.insert(sivan[i]);
        v.push_back(make_pair(sivan[i],i));
        mp[sivan[i]]++;
    }
    sort(v.begin(),v.end());
    int a=v[0].first;
    int b=v[v.size()-1].first;
    int c=v[1].first;

    if(s.size()==1)
        cout<<"Exemplary pages.";

    else if(s.size()==3 && mp[a]==1 &&  mp[b]==1 && c-a==b-c)
    {

        cout<<v[v.size()-2].first-v[0].first<<" ml. from cup #"<<v[0].second+1<<" to cup #"<<1+v[v.size()-1].second<<".";

    }
    else if(v.size()==2 && (v[0].first+v[1].first)%2==0)
    {
          cout<<(v[1].first-v[0].first)/2<<" ml. from cup #"<<v[0].second+1<<" to cup #"<<1+v[v.size()-1].second<<".";
    }
    else
        cout<<"Unrecoverable configuration.";

    return 0;

}


#include<bits/stdc++.h>
using namespace std;
//using namespace __gnu_pbds;
#define ll long long
#define ff first
#define ss second
//#define pb push_back
#define freopen freopen("input.txt","r",stdin); freopen("output.txt","w",stdout);
#define MOD 1000000007
#define IOS ios_base::sync_with_stdio(NULL); cin.tie(NULL); cout.tie(NULL);
ll mx=-1e9,mn=1e9+5;
ll T,n,m,k,ans,a[300005],b,c,d,l,r,sum,mid,coin,cnt,pos,number,x,y,z;
ll dp[300005];
vector<ll> v,v1;
map<ll,ll> mp,mm;
map<ll,ll> :: iterator it;
pair<ll,ll> p[5000];
queue<ll> q;
priority_queue<ll> pq;
int main(){
	cin>>n;
	for(int i=1; i<=n; i++){
		scanf("%lld", &a[i]);
		p[i].ff=a[i];
		p[i].ss=i;
		mp[a[i]]++;
	}
	if(n==1){
		cout<<"Exemplary pages.";
		return 0;
	}
	sort(p+1,p+n+1);
	if(n==2){
		if(a[1]==a[2]){
			cout<<"Exemplary pages.";
			return 0;
		}
		if(abs(a[2]-a[1])%2==1){
			cout<<"Unrecoverable configuration.";
			return 0;
		}
		ll zor=abs(a[2]-a[1]);
		if(a[2]>a[1]){
			cout<<zor/2<<" ml. from cup #1 to cup #2.";
			return 0;
		}
		else{
			cout<<zor/2<<" ml. from cup #2 to cup #1.";
			return 0;
		}
	}
	if(n==3){
		if(mp.size()==1){
			cout<<"Exemplary pages.";
			return 0;
		}
		if(p[1].ff+(p[3].ff-p[1].ff)/2==p[2].ff && (p[3].ff-p[1].ff)%2==0){
			cout<<(p[3].ff-p[1].ff)/2<<" ml. from cup #"<<p[1].ss<<" to cup #"<<p[3].ss<<".";
			return 0;
		}
		cout<<"Unrecoverable configuration.";
		return 0;
	}
	if(mp.size()==1){
		cout<<"Exemplary pages.";
		return 0;
	}
	for(it=mp.begin(); it!=mp.end(); it++){
		if(it->ss==1){
			v.push_back(it->ff);
		}
		else{
			v1.push_back(it->ff);
		}
	}
	if(v.size()!=2 || v1.size()!=1){
		cout<<"Unrecoverable configuration.";
		return 0;
	}
	sort(v.begin(),v.end());
	if(v1[0]!=(v[1]-v[0])/2+v[0] || (v[1]-v[0])%2==1){
		cout<<"Unrecoverable configuration.";
		return 0;
	}
	cout<<(v[1]-v[0])/2<<" ml. from cup #";
	for(int i=1; i<=n; i++){
		if(p[i].ff==v[0]){
			cout<<p[i].ss;
			cout<<" to cup #";
		}
		if(p[i].ff==v[1]){
			cout<<p[i].ss<<".";
		}
	}
}


#include<bits/stdc++.h>
using namespace std;
//using namespace __gnu_pbds;
#define ll long long
#define ff first
#define ss second
//#define pb push_back
#define freopen freopen("input.txt","r",stdin); freopen("output.txt","w",stdout);
#define MOD 1000000007
#define IOS ios_base::sync_with_stdio(NULL); cin.tie(NULL); cout.tie(NULL);
ll mx=-1e9,mn=1e9+5;
ll T,n,m,k,ans,a[300005],b,c,d,l,r,sum,mid,coin,cnt,pos,number,x,y,z;
ll dp[300005];
vector<ll> v,v1;
map<ll,ll> mp,mm;
map<ll,ll> :: iterator it;
pair<ll,ll> p[5000];
queue<ll> q;
priority_queue<ll> pq;
int main(){
	cin>>n;
	for(int i=1; i<=n; i++){
		scanf("%lld", &a[i]);
		p[i].ff=a[i];
		p[i].ss=i;
		mp[a[i]]++;
	}
	if(n==1){
		cout<<"Exemplary pages.";
		return 0;
	}
	sort(p+1,p+n+1);
	if(n==2){
		if(a[1]==a[2]){
			cout<<"Exemplary pages.";
			return 0;
		}
		if(abs(a[2]-a[1])%2==1){
			cout<<"Unrecoverable configuration.";
			return 0;
		}
		ll zor=abs(a[2]-a[1]);
		if(a[2]>a[1]){
			cout<<zor/2<<" ml. from cup #1 to cup #2.";
			return 0;
		}
		else{
			cout<<zor/2<<" ml. from cup #2 to cup #1.";
			return 0;
		}
	}
	if(n==3){
		if(mp.size()==1){
			cout<<"Exemplary pages.";
			return 0;
		}
		if(p[1].ff+(p[3].ff-p[1].ff)/2==p[2].ff && (p[3].ff-p[1].ff)%2==0){
			cout<<(p[3].ff-p[1].ff)/2<<" ml. from cup #"<<p[1].ss<<" to cup #"<<p[3].ss<<".";
			return 0;
		}
		cout<<"Unrecoverable configuration.";
		return 0;
	}
	if(mp.size()==1){
		cout<<"Exemplary pages.";
		return 0;
	}
	for(it=mp.begin(); it!=mp.end(); it++){
		if(it->ss==1){
			v.push_back(it->ff);
		}
		else{
			v1.push_back(it->ff);
		}
	}
	if(v.size()!=2 || v1.size()!=1){
		cout<<"Unrecoverable configuration.";
		return 0;
	}
	sort(v.begin(),v.end());
	if(v1[0]!=(v[1]-v[0])/2+v[0] || (v[1]-v[0])%2==1)){
		cout<<"Unrecoverable configuration.";
		return 0;
	}
	cout<<(v[1]-v[0])/2<<" ml. from cup #";
	for(int i=1; i<=n; i++){
		if(p[i].ff==v[0]){
			cout<<p[i].ss;
			cout<<" to cup #";
		}
		if(p[i].ff==v[1]){
			cout<<p[i].ss<<".";
		}
	}
}


#include<bits/stdc++.h>
using namespace std;
//using namespace __gnu_pbds;
#define ll long long
#define ff first
#define ss second
//#define pb push_back
#define freopen freopen("input.txt","r",stdin); freopen("output.txt","w",stdout);
#define MOD 1000000007
#define IOS ios_base::sync_with_stdio(NULL); cin.tie(NULL); cout.tie(NULL);
ll mx=-1e9,mn=1e9+5;
ll T,n,m,k,ans,a[300005],b,c,d,l,r,sum,mid,coin,cnt,pos,number,x,y,z;
ll dp[300005];
vector<ll> v,v1;
map<ll,ll> mp,mm;
map<ll,ll> :: iterator it;
pair<ll,ll> p[5000];
queue<ll> q;
priority_queue<ll> pq;
int main(){
	cin>>n;
	for(int i=1; i<=n; i++){
		scanf("%lld", &a[i]);
		p[i].ff=a[i];
		p[i].ss=i;
		mp[a[i]]++;
	}
	if(n==1){
		cout<<"Exemplary pages.";
		return 0;
	}
	sort(p+1,p+n+1);
	if(n==2){
		if(a[1]==a[2]){
			cout<<"Exemplary pages.";
			return 0;
		}
		if(abs(a[2]-a[1])%2==1){
			cout<<"Unrecoverable configuration.";
			return 0;
		}
		ll zor=abs(a[2]-a[1]);
		if(a[2]>a[1]){
			cout<<zor/2<<" ml. from cup #1 to cup #2.";
			return 0;
		}
		else{
			cout<<zor/2<<" ml. from cup #2 to cup #1.";
			return 0;
		}
	}
	if(n==3){
		if(mp.size()==1){
			cout<<"Exemplary pages.";
			return 0;
		}
		if(p[1].ff+(p[3].ff-p[1].ff)/2==p[2].ff && (p[3].ff-p[1].ff)%2==0){
			cout<<(p[3].ff-p[1].ff)/2<<" ml. from cup #"<<p[1].ss<<" to cup #"<<p[3].ss<<".";
			return 0;
		}
		cout<<"Unrecoverable configuration.";
		return 0;
	}
	if(mp.size()==1){
		cout<<"Exemplary pages.";
		return 0;
	}
	for(it=mp.begin(); it!=mp.end(); it++){
		if(it->ss==1){
			v.push_back(it->ff);
		}
		else{
			v1.push_back(it->ff);
		}
	}
	if(v.size()!=2 || v1.size()!=1){
		cout<<"Unrecoverable configuration.";
		return 0;
	}
	sort(v.begin(),v.end());
	if(v1[0]!=(v[1]-v[0])/2+v[0] || (v[1]-v[0]%2==1)){
		cout<<"Unrecoverable configuration.";
		return 0;
	}
	cout<<(v[1]-v[0])/2<<" ml. from cup #";
	for(int i=1; i<=n; i++){
		if(p[i].ff==v[0]){
			cout<<p[i].ss;
			cout<<" to cup #";
		}
		if(p[i].ff==v[1]){
			cout<<p[i].ss<<".";
		}
	}
}


#include<bits/stdc++.h>
using namespace std;
//using namespace __gnu_pbds;
#define ll long long
#define ff first
#define ss second
//#define pb push_back
#define freopen freopen("input.txt","r",stdin); freopen("output.txt","w",stdout);
#define MOD 1000000007
#define IOS ios_base::sync_with_stdio(NULL); cin.tie(NULL); cout.tie(NULL);
ll mx=-1e9,mn=1e9+5;
ll T,n,m,k,ans,a[300005],b,c,d,l,r,sum,mid,coin,cnt,pos,number,x,y,z;
ll dp[300005];
vector<ll> v,v1;
map<ll,ll> mp,mm;
map<ll,ll> :: iterator it;
pair<ll,ll> p[5000];
queue<ll> q;
priority_queue<ll> pq;
int main(){
	cin>>n;
	for(int i=1; i<=n; i++){
		scanf("%lld", &a[i]);
		p[i].ff=a[i];
		p[i].ss=i;
		mp[a[i]]++;
	}
	if(n==1){
		cout<<"Exemplary pages.";
		return 0;
	}
	sort(p+1,p+n+1);
	if(n==2){
		if(a[1]==a[2]){
			cout<<"Exemplary pages.";
			return 0;
		}
		if(abs(a[2]-a[1])%2==1){
			cout<<"Unrecoverable configuration.";
			return 0;
		}
		ll zor=abs(a[2]-a[1]);
		if(a[2]>a[1]){
			cout<<zor/2<<" ml. from cup #1 to cup #2.";
			return 0;
		}
		else{
			cout<<zor/2<<" ml. from cup #2 to cup #1.";
			return 0;
		}
	}
	if(n==3){
		if(mp.size()==1){
			cout<<"Exemplary pages.";
			return 0;
		}
		if(p[1].ff+(p[3].ff-p[1].ff)/2==p[2].ff){
			cout<<(p[3].ff-p[1].ff)/2<<" ml. from cup #"<<p[1].ss<<" to cup #"<<p[3].ss<<".";
			return 0;
		}
		cout<<"Unrecoverable configuration.";
		return 0;
	}
	if(mp.size()==1){
		cout<<"Exemplary pages.";
		return 0;
	}
	for(it=mp.begin(); it!=mp.end(); it++){
		if(it->ss==1){
			v.push_back(it->ff);
		}
		else{
			v1.push_back(it->ff);
		}
	}
	if(v.size()!=2 || v1.size()!=1){
		cout<<"Unrecoverable configuration.";
		return 0;
	}
	sort(v.begin(),v.end());
	if(v1[0]!=(v[1]-v[0])/2+v[0]){
		cout<<"Unrecoverable configuration.";
		return 0;
	}
	cout<<(v[1]-v[0])/2<<" ml. from cup #";
	for(int i=1; i<=n; i++){
		if(p[i].ff==v[0]){
			cout<<p[i].ss;
			cout<<" to cup #";
		}
		if(p[i].ff==v[1]){
			cout<<p[i].ss<<".";
		}
	}
}


#include<bits/stdc++.h>
using namespace std;
#define pb push_back
#define mp make_pair
#define F first
#define S second
#define pii pair<int,int>
#define pll pair<ll,ll>
#define pdd pair<double,double>
#define all(x) x.begin(), x.end()
#define ed cout << "\n"

typedef long long ll;

long double const PI = acosl(-1);
const int INF=1E9 + 4;
const int MAXN=1e5 + 123;
const long double EPS = 3e-16;
const ll MOD=1e9 + 7;

bool fl[56][56];
int a[MAXN];
int b[MAXN];
int used[MAXN];

void solve(){
	int n;
	cin >> n;
	for(int i = 0; i < n; i++){cin >> a[i];b[i] = a[i]; used[a[i]]++;}
	sort(b,b + n);
	if(used[b[0]] == n){cout << "Exemplary pages.";}
	else if((b[n - 1] - b[0])%2) cout << "Unrecoverable configuration.";
	else{
		if(n == 2 && used[b[0]] == 1 && used[b[1]] == 1){
			if(a[0] == b[0]){
				cout << (b[1] - b[0])/2 << " ml. from cup #" << 1 << " to cup #" << 2 <<'.';
			}
			else{
				cout << (b[1] - b[0])/2 << " ml. from cup #" << 2 << " to cup #" << 1 <<'.';
			}
		}
		else if(used[b[0]] == 1 && used[b[n - 1]] == 1 && used[b[1]] == n - 2){
			int x,y;
			for(int i = 0; i < n; i++){
				if(b[0] == a[i]) x = i + 1;
				else if(b[n - 1] == a[i]) y = i + 1;
			}
			cout << (b[n - 1] - b[0])/2 << " ml. from cup #" << x << " to cup #" << y <<'.';
		}
		else cout << "Unrecoverable configuration.";
	}
	//ed;
	//cout << b[0] << ' ' << b[1] << ' ' << b[n - 1] << ' ' << n - 2;
}

int main() {
	//freopen("input.txt","r",stdin);
	//freopen("output.txt","w",stdout);
	ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
	int t = 1;
    //cin >> t;
	while(t--) solve();
	return 0;
}


#include<bits/stdc++.h>
using namespace std;
#define pb push_back
#define mp make_pair
#define F first
#define S second
#define pii pair<int,int>
#define pll pair<ll,ll>
#define pdd pair<double,double>
#define all(x) x.begin(), x.end()
#define ed cout << "\n"

typedef long long ll;

long double const PI = acosl(-1);
const int INF=1E9 + 4;
const int MAXN=1e5 + 123;
const long double EPS = 3e-16;
const ll MOD=1e9 + 7;

bool fl[56][56];
int a[MAXN];
int b[MAXN];
int used[MAXN];

void solve(){
	int n;
	cin >> n;
	for(int i = 0; i < n; i++){cin >> a[i];b[i] = a[i]; used[a[i]]++;}
	sort(b,b + n);
	if(used[b[0]] == n){cout << "Exemplary pages.";}
	if((b[n - 1] - b[0])%2) cout << "Unrecoverable configuration.";
	else{
		if(n == 2 && used[b[0]] == 1 && used[b[1]] == 1){
			if(a[0] == b[0]){
				cout << (b[1] - b[0])/2 << " ml. from cup #" << 1 << " to cup #" << 2 <<'.';
			}
			else{
				cout << (b[1] - b[0])/2 << " ml. from cup #" << 2 << " to cup #" << 1 <<'.';
			}
		}
		else if(used[b[0]] == 1 && used[b[n - 1]] == 1 && used[b[1]] == n - 2){
			int x,y;
			for(int i = 0; i < n; i++){
				if(b[0] == a[i]) x = i + 1;
				else if(b[n - 1] == a[i]) y = i + 1;
			}
			cout << (b[n - 1] - b[0])/2 << " ml. from cup #" << x << " to cup #" << y <<'.';
		}
		else cout << "Unrecoverable configuration.";
	}
	//ed;
	//cout << b[0] << ' ' << b[1] << ' ' << b[n - 1] << ' ' << n - 2;
}

int main() {
	//freopen("input.txt","r",stdin);
	//freopen("output.txt","w",stdout);
	ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
	int t = 1;
    //cin >> t;
	while(t--) solve();
	return 0;
}


#include<bits/stdc++.h>
using namespace std;
#define pb push_back
#define mp make_pair
#define F first
#define S second
#define pii pair<int,int>
#define pll pair<ll,ll>
#define pdd pair<double,double>
#define all(x) x.begin(), x.end()
#define ed cout << "\n"

typedef long long ll;

long double const PI = acosl(-1);
const int INF=1E9 + 4;
const int MAXN=1e5 + 123;
const long double EPS = 3e-16;
const ll MOD=1e9 + 7;

bool fl[56][56];
int a[MAXN];
int b[MAXN];
int used[MAXN];

void solve(){
	int n;
	cin >> n;
	for(int i = 0; i < n; i++){cin >> a[i];b[i] = a[i]; used[a[i]]++;}
	sort(b,b + n);
	if(used[b[0]] == n){cout << "Exemplary pages.";}
	else{
		if(n == 2 && used[b[0]] == 1 && used[b[1]] == 1){
			if(a[0] == b[0]){
				cout << (b[1] - b[0])/2 << " ml. from cup #" << 1 << " to cup #" << 2 <<'.';
			}
			else{
				cout << (b[1] - b[0])/2 << " ml. from cup #" << 2 << " to cup #" << 1 <<'.';
			}
		}
		else if(used[b[0]] == 1 && used[b[n - 1]] == 1 && used[b[1]] == n - 2){
			int x,y;
			for(int i = 0; i < n; i++){
				if(b[0] == a[i]) x = i + 1;
				else if(b[n - 1] == a[i]) y = i + 1;
			}
			cout << (b[n - 1] - b[0])/2 << " ml. from cup #" << x << " to cup #" << y <<'.';
		}
		else cout << "Unrecoverable configuration.";
	}
	//ed;
	//cout << b[0] << ' ' << b[1] << ' ' << b[n - 1] << ' ' << n - 2;
}

int main() {
	//freopen("input.txt","r",stdin);
	//freopen("output.txt","w",stdout);
	ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
	int t = 1;
    //cin >> t;
	while(t--) solve();
	return 0;
}


#include<bits/stdc++.h>
using namespace std;

int main(){
    int n;
    cin>>n;
    int a[n];
    for(int i=0;i<n;i++)
    scanf("%d",&a[i]);
    int *l=min_element(a,a+n),*r=max_element(a,a+n);
    if(*l==*r)
    cout<<"Exemplary pages.";
    else
    {
        int m=(*r-*l)/2;
        *r-=m,*l+=m;
        if(*min_element(a,a+n)==*max_element(a,a+n))
        printf("%d ml. from cup #%d to cup #%d.\n ",m,l-a+1,r-a+1);

        else puts("Unrecoverable configuration.");
    }

    return 0;

}


#include <bits/stdc++.h>
using namespace std;
map<int,int>m;
vector<pair<int,int>>v;
int main(){
   int n,x;
   cin>>n;
   for(int i=0;i<n;i++){cin>>x;m[x]=i+1;}
  for (auto i = m.begin(); i != m.end(); ++i)
        v.push_back({i->first,i->second});

        if(v.size()==3){
            if(v[2].first-v[1].first==v[1].first-v[0].first)cout<<v[1].first-v[0].first <<" ml. from cup #"<<v[0].second<<" to cup #"<<v[2].second<<".";
            else   cout<<"Unrecoverable configuration.";
        }else if(v.size()==1)cout<<"Exemplary pages.";
    else cout<<"Unrecoverable configuration.";
    return 0;

}


#include <bits/stdc++.h>
using namespace std;
map<int,int>m;
vector<pair<int,int>>v;
int main(){
   int n,x;
   cin>>n;
   for(int i=0;i<n;i++){cin>>x;m[x]=i+1;}
  for (auto i = m.begin(); i != m.end(); ++i)
        v.push_back({i->first,i->second});
if(v.size()==2){
     if((v[1].first-v[0].first)%2==0)cout<<(v[1].first-v[0].first)/2 <<" ml. from cup #"<<v[0].second<<" to cup #"<<v[1].second<<".";
            else   cout<<"Unrecoverable configuration.";return 0;
}
        if(v.size()==3){
            if(v[2].first-v[1].first==v[1].first-v[0].first)cout<<v[1].first-v[0].first <<" ml. from cup #"<<v[0].second<<" to cup #"<<v[2].second<<".";
            else   cout<<"Unrecoverable configuration.";
        }else if(v.size()==1)cout<<"Exemplary pages.";
    else  cout<<"Unrecoverable configuration.";
    return 0;

}


#include <bits/stdc++.h>
using namespace std;
map<int,int>m;
vector<pair<int,int>>v;
int main(){
   int n,x;
   cin>>n;
   for(int i=0;i<n;i++){cin>>x;m[x]=i+1;}
  for (auto i = m.begin(); i != m.end(); ++i)
        v.push_back({i->first,i->second});
if(v.size()==2){
     if((v[2].first-v[1].first)%2==0)cout<<(v[1].first-v[0].first)/2 <<" ml. from cup #"<<v[0].second<<" to cup #"<<v[1].second<<".";
            else   cout<<"Unrecoverable configuration.";return 0;
}
        if(v.size()==3){
            if(v[2].first-v[1].first==v[1].first-v[0].first)cout<<v[1].first-v[0].first <<" ml. from cup #"<<v[0].second<<" to cup #"<<v[2].second<<".";
            else   cout<<"Unrecoverable configuration.";
        }else if(v.size()==1)cout<<"Exemplary pages.";
    else  cout<<"Unrecoverable configuration.";
    return 0;

}


#include <bits/stdc++.h>
using namespace std;
map<int,int>m;
vector<pair<int,int>>v;
int main(){
   int n,x;
   cin>>n;
   for(int i=0;i<n;i++){cin>>x;m[x]=i+1;}
  for (auto i = m.begin(); i != m.end(); ++i)
        v.push_back({i->first,i->second});
if(n==2&&v.size()==2){
     if((v[1].first-v[0].first)%2==0)cout<<(v[1].first-v[0].first)/2 <<" ml. from cup #"<<v[0].second<<" to cup #"<<v[1].second<<".";
            else   cout<<"Unrecoverable configuration.";return 0;
}
        if(v.size()==3){
            if(v[2].first-v[1].first==v[1].first-v[0].first)cout<<v[1].first-v[0].first <<" ml. from cup #"<<v[0].second<<" to cup #"<<v[2].second<<".";
            else   cout<<"Unrecoverable configuration.";
        }else if(v.size()==1)cout<<"Exemplary pages.";
    else  cout<<"Unrecoverable configuration.";
    return 0;

}


#include <bits/stdc++.h>
using namespace std;
map<int,int>m;int a[10001];
vector<pair<int,int>>v;
int main(){
   int n,x;
   cin>>n;
   for(int i=0;i<n;i++){cin>>x;m[x]=i+1;a[x]++;}
  for (auto i = m.begin(); i != m.end(); ++i)
        v.push_back({i->first,i->second});
if(n==2&&v.size()==2){
     if((v[1].first-v[0].first)%2==0)cout<<(v[1].first-v[0].first)/2 <<" ml. from cup #"<<v[0].second<<" to cup #"<<v[1].second<<".";
            else   cout<<"Unrecoverable configuration.";return 0;
}
        if(v.size()==3&&a[v[1].first]==n-2){
            if(v[2].first-v[1].first==v[1].first-v[0].first)cout<<v[1].first-v[0].first <<" ml. from cup #"<<v[0].second<<" to cup #"<<v[2].second<<".";
            else   cout<<"Unrecoverable configuration.";
        }else if(v.size()==1)cout<<"Exemplary pages.";
    else  cout<<"Unrecoverable configuration.";
    return 0;

}


#include <bits/stdc++.h>
using namespace std;
map<int,int>m;
vector<pair<int,int>>v;
int main(){
   int n,x;
   cin>>n;
   for(int i=0;i<n;i++){cin>>x;m[x]=i+1;}
  for (auto i = m.begin(); i != m.end(); ++i)
        v.push_back({i->first,i->second});

        if(v.size()==3){
            if(v[2].first-v[1].first==v[1].first-v[0].first)return cout<<v[1].first-v[0].first <<" ml. from cup #"<<v[0].second<<" to cup #"<<v[2].second,0;
            else   cout<<"Unrecoverable configuration.";
        }else if(v.size()==1)cout<<"Exemplary pages.";
    else cout<<"Unrecoverable configuration.";
    return 0;

}


  /*                                                                                << Suirkhanov Meyirlan >>

    BISMILLAH (Allah will help you) =);

    bless my code =)

    //keep calm & just code(even if u don't know) :)
           ////,        ////
           \  /,      /  >.
            \  /,   _/  /.              K   K     ZZZZZZ
             \_  /_/   /.               K  K          Z
              \__/_   <                 K K          Z
              /<<< \_\_                 KK          Z
              /,)^>>_._ \               K K        Z
            (/   \ /\\                  K   K     ZZZZZZ
                  // ````
                 ((
        $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
        Insallah everything will be OK)

*/

///scanf ("%d%d", &x, &y);
///printf("%d", a)

//A$APs and Lils are around 0_0

#include <bits/stdc++.h>

#define fast ios_base::sync_with_stdio();   cin.tie(0);   cout.tie(0);
#define randoperation srand(time(0));
#define pii pair < int , int >
#define pll pair < ll, ll >
#define pb push_back
#define pf push_front
#define mp make_pair
#define fi first
#define se second

using namespace std;

typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;

const int N = 1e3 + 7;
const ld pi = 3.14159265359;
const ll INF = 1e9;

int n, a[N], d, b, sum;

pair < int, int > p[N];

vector < pair < int, int > > v;

set < int > st;

bool u[N];

int main(){

  //freopen("INPUT.TXT", "r", stdin);
  //freopen("OUTPUT.TXT", "w", stdout);

  fast
  randoperation;

  ///           ||
  ///start here \/

  cin >> n;

  for(int i = 1; i <= n; i++){
    cin >> a[i];
    sum += a[i];
    st.insert(a[i]);
  }

  if(sum % n != 0){
    cout << "Unrecoverable configuration.";
    return 0;
  }

  if(st.size() == 1){
    cout << "Exemplary pages.";
    return 0;
  }

  for(int i = 1; i <= n; i++){
    if(a[i] > sum / n && !b){
      b = i;
    }

    else if(a[i] > sum / n){
      cout << "Unrecoverable configuration.";
      return 0;
    }

    if(a[i] < sum / n && !d){
      d = i;
    }

    else if(a[i] < sum / n){
      cout << "Unrecoverable configuration.";
      return 0;
    }
  }

  if(!d){
    cout << "Exemplary pages.";
    return 0;
  }

  cout << (a[b] - a[d]) / 2 << " ml. from cup #" << d << " to cup #" << b << ".";
}


  /*                                                                                << Suirkhanov Meyirlan >>

    BISMILLAH (Allah will help you) =);

    bless my code =)

    //keep calm & just code(even if u don't know) :)
           ////,        ////
           \  /,      /  >.
            \  /,   _/  /.              K   K     ZZZZZZ
             \_  /_/   /.               K  K          Z
              \__/_   <                 K K          Z
              /<<< \_\_                 KK          Z
              /,)^>>_._ \               K K        Z
            (/   \ /\\                  K   K     ZZZZZZ
                  // ````
                 ((
        $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
        Insallah everything will be OK)

*/

///scanf ("%d%d", &x, &y);
///printf("%d", a)

//A$APs and Lils are around 0_0

#include <bits/stdc++.h>

#define fast ios_base::sync_with_stdio();   cin.tie(0);   cout.tie(0);
#define randoperation srand(time(0));
#define pii pair < int , int >
#define pll pair < ll, ll >
#define pb push_back
#define pf push_front
#define mp make_pair
#define fi first
#define se second

using namespace std;

typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;

const int N = 1e3 + 7;
const ld pi = 3.14159265359;
const ll INF = 1e9;

int n, a[N];

pair < int, int > p[N];

vector < pair < int, int > > v;

set < int > st;

bool u[N];

int main(){

  //freopen("INPUT.TXT", "r", stdin);
  //freopen("OUTPUT.TXT", "w", stdout);

  fast
  randoperation;

  ///           ||
  ///start here \/

  cin >> n;

  for(int i = 1; i <= n; i++){
    cin >> a[i];
    p[i].fi = a[i];
    p[i].se = i;
    st.insert(a[i]);
  }

  if(st.size() == 1){
    cout << "Exemplary pages.";
    return 0;
  }

  if(n < 3){

    int x1 = a[1];
    int y1 = 1;

    int x2 = a[2];
    int y2 = 2;

    if(x1 > x2){
      cout << (x2 + x1) / 2 << " ml. from cup #" << y2 << " to cup #" << y1 << '.';
    }

    else{
      cout << (x2 + x1) / 2 << " ml. from cup #" << y1 << " to cup #" << y2 << '.';
    }

    return 0;
  }

  if(st.size() != 3){
    cout << "Unrecoverable configuration.";
    return 0;
  }

  for(int i = 1; i <= n; i++){
    if(!u[p[i].fi]){
      u[p[i].fi] = 1;
      v.pb(mp(p[i].fi, p[i].se));
    }
  }

  sort(v.begin(), v.end());

  int x1 = v[0].fi;
  int y1 = v[0].se;

  int x2 = v[1].fi;
  int y2 = v[1].se;

  int x3 = v[2].fi;
  int y3 = v[2].se;

  if((x1 + x3) / 2 == x2){
    cout << x2 - x1 << " ml. from cup #" << y1 << " to cup #" << y3 << '.';
    return 0;
  }
  else{
    cout << "Unrecoverable configuration.";
  }
}


  /*                                                                                << Suirkhanov Meyirlan >>

    BISMILLAH (Allah will help you) =);

    bless my code =)

    //keep calm & just code(even if u don't know) :)
           ////,        ////
           \  /,      /  >.
            \  /,   _/  /.              K   K     ZZZZZZ
             \_  /_/   /.               K  K          Z
              \__/_   <                 K K          Z
              /<<< \_\_                 KK          Z
              /,)^>>_._ \               K K        Z
            (/   \ /\\                  K   K     ZZZZZZ
                  // ````
                 ((
        $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
        Insallah everything will be OK)

*/

///scanf ("%d%d", &x, &y);
///printf("%d", a)

//A$APs and Lils are around 0_0

#include <bits/stdc++.h>

#define fast ios_base::sync_with_stdio();   cin.tie(0);   cout.tie(0);
#define randoperation srand(time(0));
#define pii pair < int , int >
#define pll pair < ll, ll >
#define pb push_back
#define pf push_front
#define mp make_pair
#define fi first
#define se second

using namespace std;

typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;

const int N = 1e3 + 7;
const ld pi = 3.14159265359;
const ll INF = 1e9;

int n, a[N], d, b, sum;

pair < int, int > p[N];

vector < pair < int, int > > v;

set < int > st;

bool u[N];

int main(){

  //freopen("INPUT.TXT", "r", stdin);
  //freopen("OUTPUT.TXT", "w", stdout);

  fast
  randoperation;

  ///           ||
  ///start here \/

  cin >> n;

  for(int i = 1; i <= n; i++){
    cin >> a[i];
    sum += a[i];
    st.insert(a[i]);
  }

  if(sum % n != 0){
    cout << "Unrecoverable configuration";
    return 0;
  }

  if(st.size() == 1){
    cout << "Exemplary pages.";
    return 0;
  }

  for(int i = 1; i <= n; i++){
    if(a[i] > sum / n && !b){
      b = i;
    }

    else if(a[i] > sum / n){
      cout << "Unrecoverable configuration.";
      return 0;
    }

    if(a[i] < sum / n && !d){
      d = i;
    }

    else if(a[i] < sum / n){
      cout << "Unrecoverable configuration.";
      return 0;
    }
  }

  if(!d){
    cout << "Exemplary pages.";
    return 0;
  }

  cout << (a[b] - a[d]) / 2 << " ml. from cup #" << d << " to cup #" << b << ".";
}


  /*                                                                                << Suirkhanov Meyirlan >>

    BISMILLAH (Allah will help you) =);

    bless my code =)

    //keep calm & just code(even if u don't know) :)
           ////,        ////
           \  /,      /  >.
            \  /,   _/  /.              K   K     ZZZZZZ
             \_  /_/   /.               K  K          Z
              \__/_   <                 K K          Z
              /<<< \_\_                 KK          Z
              /,)^>>_._ \               K K        Z
            (/   \ /\\                  K   K     ZZZZZZ
                  // ````
                 ((
        $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
        Insallah everything will be OK)

*/

///scanf ("%d%d", &x, &y);
///printf("%d", a)

//A$APs and Lils are around 0_0

#include <bits/stdc++.h>

#define fast ios_base::sync_with_stdio();   cin.tie(0);   cout.tie(0);
#define randoperation srand(time(0));
#define pii pair < int , int >
#define pll pair < ll, ll >
#define pb push_back
#define pf push_front
#define mp make_pair
#define fi first
#define se second

using namespace std;

typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;

const int N = 1e3 + 7;
const ld pi = 3.14159265359;
const ll INF = 1e9;

int n, a[N];

pair < int, int > p[N];

vector < pair < int, int > > v;

set < int > st;

bool u[N];

int main(){

  //freopen("INPUT.TXT", "r", stdin);
  //freopen("OUTPUT.TXT", "w", stdout);

  fast
  randoperation;

  ///           ||
  ///start here \/

  cin >> n;

  for(int i = 1; i <= n; i++){
    cin >> a[i];
    p[i].fi = a[i];
    p[i].se = i;
    st.insert(a[i]);
  }

  if(st.size() == 1){
    cout << "Exemplary pages.";
    return 0;
  }

  if(n < 3){

    int x1 = a[1];
    int y1 = 1;

    int x2 = a[2];
    int y2 = 2;

    if((x1 + x2) % 2 == 1){
      cout << "Unrecoverable configuration.";
      return 0;
    }

    if(x1 > x2){
      cout << (x2 + x1) / 2 << " ml. from cup #" << y2 << " to cup #" << y1 << '.';
    }

    else{
      cout << (x2 + x1) / 2 << " ml. from cup #" << y1 << " to cup #" << y2 << '.';
    }

    return 0;
  }

  if(st.size() != 3){
    cout << "Unrecoverable configuration.";
    return 0;
  }

  for(int i = 1; i <= n; i++){
    if(!u[p[i].fi]){
      u[p[i].fi] = 1;
      v.pb(mp(p[i].fi, p[i].se));
    }
  }

  sort(v.begin(), v.end());

  int x1 = v[0].fi;
  int y1 = v[0].se;

  int x2 = v[1].fi;
  int y2 = v[1].se;

  int x3 = v[2].fi;
  int y3 = v[2].se;

  if((x1 + x3) / 2 == x2){
    cout << x2 - x1 << " ml. from cup #" << y1 << " to cup #" << y3 << '.';
    return 0;
  }
  else{
    cout << "Unrecoverable configuration.";
  }
}