#define _CRT_SECURE_NO_WARNINGS 1
#include <vector>
#include <map>
#include <set>
#include <bitset>
#include <algorithm>
#include <numeric>
#include <sstream>
#include <iostream>
#include <cmath>
#include<cstring>
#include <cstdio>
#include <stack>
#include<iomanip>
#include<queue>
#include<functional>
#include<iterator>
#include<new>
#include<cstdlib>
using namespace std;
#define INF 2000000000
#define scll(x) scanf("%lld",&x);
#define sci(x) scanf("%d",&x);
#define scc(x) scanf("%c", &c);
#define MOD 1000000007
#define EPS 1e-6
typedef long long ll;
typedef pair<int, int> pi;
typedef pair<double, double> pdl;
typedef pair<long long, long long> pll;
ll gcd(ll a, ll b) {
return b == 0 ? a : gcd(b, a%b);
}
ll lcm(ll a, ll b) {
return a*b / gcd(a, b);
}
ll n, r, k;
ll a[20020], x[20020];
int main()
{
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
//freopen("output.txt", "w", stdout);
#endif
int cNo = 1;
while (cin >> n >> r >> k && n > 0) {
ll startIdx = (r - 1)*n + (k - 1);
ll endIdx = 0;
n *= 2;
for (int i = 0; i < n; i++)
cin >> a[i];
reverse(a + n / 2, a + n);
if (startIdx >= n/2)
startIdx = n - startIdx + n / 2 - 1;
for (int i = 0; i < n; i++) {
if (i < startIdx)
x[i] = (n - startIdx) + a[i]*n + 1LL * (i + 1);
else
x[i] = (i*1LL - startIdx) + a[i]*n;
}
for (int i = 0; i < n; i++) {
if (x[i] < x[endIdx])
endIdx = i;
}
ll actualEnd = (endIdx % n - x[endIdx] % n + 3*n) % n;
printf("Case %d:\n", cNo);
if (actualEnd != startIdx) {
printf("INVALID\n");
cNo++;
continue;
}
ll distNum = x[endIdx];
for (int i = startIdx; i < n; i++) {
a[i]--;
distNum--;
}
for (int i = 0; i < n; i++) {
a[i] -= distNum / n;
}
distNum %= n;
for (int i = 0; i < distNum; i++)
a[i]--;
a[endIdx] = x[endIdx];
reverse(a + n/2, a + n);
for (int i = 0; i < n; i++) {
if (i == n / 2)
cout << endl;
cout << a[i] << ' ';
}
cout << endl;
cNo++;
}
return 0;
}
I2RlZmluZSBfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUyAxCiNpbmNsdWRlIDx2ZWN0b3I+CiNpbmNsdWRlIDxtYXA+CiNpbmNsdWRlIDxzZXQ+CiNpbmNsdWRlIDxiaXRzZXQ+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDxudW1lcmljPgojaW5jbHVkZSA8c3N0cmVhbT4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlPGNzdHJpbmc+CiNpbmNsdWRlIDxjc3RkaW8+CiNpbmNsdWRlIDxzdGFjaz4KI2luY2x1ZGU8aW9tYW5pcD4KI2luY2x1ZGU8cXVldWU+CiNpbmNsdWRlPGZ1bmN0aW9uYWw+CiNpbmNsdWRlPGl0ZXJhdG9yPgojaW5jbHVkZTxuZXc+CiNpbmNsdWRlPGNzdGRsaWI+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgSU5GIDIwMDAwMDAwMDAKI2RlZmluZSBzY2xsKHgpIHNjYW5mKCIlbGxkIiwmeCk7CiNkZWZpbmUgc2NpKHgpICBzY2FuZigiJWQiLCZ4KTsKI2RlZmluZSBzY2MoeCkgIHNjYW5mKCIlYyIsICZjKTsKI2RlZmluZSBNT0QgMTAwMDAwMDAwNwojZGVmaW5lIEVQUyAxZS02CnR5cGVkZWYgbG9uZyBsb25nIGxsOwp0eXBlZGVmIHBhaXI8aW50LCBpbnQ+IHBpOwp0eXBlZGVmIHBhaXI8ZG91YmxlLCBkb3VibGU+IHBkbDsKdHlwZWRlZiBwYWlyPGxvbmcgbG9uZywgbG9uZyBsb25nPiBwbGw7CgpsbCBnY2QobGwgYSwgbGwgYikgewoJcmV0dXJuIGIgPT0gMCA/IGEgOiBnY2QoYiwgYSViKTsKfQoKbGwgbGNtKGxsIGEsIGxsIGIpIHsKCXJldHVybiBhKmIgLyBnY2QoYSwgYik7Cn0KCmxsIG4sIHIsIGs7CmxsIGFbMjAwMjBdLCB4WzIwMDIwXTsKCgppbnQgbWFpbigpCnsKI2lmbmRlZiBPTkxJTkVfSlVER0UKCWZyZW9wZW4oImlucHV0LnR4dCIsICJyIiwgc3RkaW4pOwoJLy9mcmVvcGVuKCJvdXRwdXQudHh0IiwgInciLCBzdGRvdXQpOwojZW5kaWYKCWludCBjTm8gPSAxOwoJd2hpbGUgKGNpbiA+PiBuID4+IHIgPj4gayAmJiBuID4gMCkgewoJCWxsIHN0YXJ0SWR4ID0gKHIgLSAxKSpuICsgKGsgLSAxKTsKCQlsbCBlbmRJZHggPSAwOwoJCW4gKj0gMjsKCQlmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykKCQkJY2luID4+IGFbaV07CgkJcmV2ZXJzZShhICsgbiAvIDIsIGEgKyBuKTsJCQoJCWlmIChzdGFydElkeCA+PSBuLzIpCgkJCXN0YXJ0SWR4ID0gbiAtIHN0YXJ0SWR4ICsgbiAvIDIgLSAxOwoJCQoJCWZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CgkJCWlmIChpIDwgc3RhcnRJZHgpCgkJCQl4W2ldID0gKG4gLSBzdGFydElkeCkgKyBhW2ldKm4gKyAxTEwgKiAoaSArIDEpOwoJCQllbHNlCgkJCQl4W2ldID0gKGkqMUxMIC0gc3RhcnRJZHgpICsgYVtpXSpuOwoJCX0KCQlmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewoJCQlpZiAoeFtpXSA8IHhbZW5kSWR4XSkKCQkJCWVuZElkeCA9IGk7CgkJfQoJCWxsIGFjdHVhbEVuZCA9IChlbmRJZHggJSBuIC0geFtlbmRJZHhdICUgbiArIDMqbikgJSBuOwoKCQlwcmludGYoIkNhc2UgJWQ6XG4iLCBjTm8pOwoJCWlmIChhY3R1YWxFbmQgIT0gc3RhcnRJZHgpIHsKCQkJcHJpbnRmKCJJTlZBTElEXG4iKTsKCQkJY05vKys7CgkJCWNvbnRpbnVlOwoJCX0KCQkKCQlsbCBkaXN0TnVtID0geFtlbmRJZHhdOwoJCWZvciAoaW50IGkgPSBzdGFydElkeDsgaSA8IG47IGkrKykgewoJCQlhW2ldLS07CgkJCWRpc3ROdW0tLTsKCQl9CgkJZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKCQkJYVtpXSAtPSBkaXN0TnVtIC8gbjsKCQl9CgkJZGlzdE51bSAlPSBuOwoJCWZvciAoaW50IGkgPSAwOyBpIDwgZGlzdE51bTsgaSsrKQoJCQlhW2ldLS07CgkJYVtlbmRJZHhdID0geFtlbmRJZHhdOwoJCXJldmVyc2UoYSArIG4vMiwgYSArIG4pOwoKCQlmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewoJCQlpZiAoaSA9PSBuIC8gMikKCQkJCWNvdXQgPDwgZW5kbDsKCQkJY291dCA8PCBhW2ldIDw8ICcgJzsKCQl9CgkJY291dCA8PCBlbmRsOwoJCWNObysrOwoJfQoKCgoJcmV0dXJuIDA7Cn0K