/* longhoang08 */
#include <bits/stdc++.h>
#define int long long
#define maxn 200010
#define cmax 1000000007
#define llmax (1LL << 61)
#define el '\n'
#define pb push_back
#define mp make_pair
#define getbit(s,i) ((s>>(i-1))&1)
#define bug(X) { cerr << #X << " = " << (X) << endl; }
#define IOS ios_base::sync_with_stdio(false); cin.tie(NULL)
#define For(i,a,b) for(int i = a; i <= b; i++)
#define Ford(i,a,b) for(int i = a; i >= b; i--)
#define Forv(i,v) for(int i = 0, _v = v.size(); i < _v; i++)
using namespace std;
typedef long long ll;
typedef pair<int, int> ptq;
typedef long double db;
typedef pair<db, db> pdb;
int n, m, L;
ptq a[maxn];
bool check(db x)
{
vector <pdb> v;
For(i,2,m)
{
if (a[i].second > a[i-1].second)
{
if (x > a[i].second) v.pb(mp(a[i].first,a[i].second));
else if (x < a[i-1].second) continue;
else
{
db x1 = a[i].second - a[i-1].second;
db x2 = x - a[i-1].second;
db y1 = a[i].first - a[i-1].first;
db res = a[i-1].first + y1 * (x2/x1);
v.pb(mp(res, x));
}
}
else
{
if (x > a[i-1].second || x < a[i].second) continue;
db x1 = x - a[i].second;
db x2 = a[i-1].second - a[i].second;
db y2 = a[i].first - a[i-1].first;
db y1 = (x1/x2) * y2;
v.pb(mp(a[i].first - y1, x));
}
}
db last = 0, prelast = -1;
int lamp = L;
int sz = v.size();
For(i,0,sz-1)
{
auto temp = v[i];
db l = max(db(0), temp.first - temp.second);
db r = min(db(n), temp.first + temp.second);
if (l <= last) prelast = max(prelast, r);
bool ok = true;
if (i < sz - 1)
{
db l1 = max(db(0), v[i+1].first - temp.second);
if (l1 <= last) ok = false;
}
if (ok)
{
lamp--;
last = prelast;
prelast = -1;
}
if (lamp == 0 || last == n) break;
}
if (last < n) return false;
return true;
}
void solve()
{
db first = 0, last = 1000000000, res = -1;
//cout << check(2.5) << ' ' << "OK" << endl;
//return;
For(ib,1,50)
{
db mid = (first + last)/2;
if (check(mid))
{
res = mid;
last = mid;
}
else first = mid;
}
if (res == -1)
{
cout << -1 << endl;
return;
}
For(i,1,2)
{
db temp = i * res;
long long t1 = round(temp);
if ( abs(t1 - temp) <= 0.001)
{
cout << t1 << ' ' << i << endl;
return;
}
}
cout << -1 << endl;
}
int32_t main(int argc, char** argv)
{
setbuf(stdout, NULL);
int T, test_case;
cin >> T;
for(test_case = 0; test_case < T; test_case++)
{
cin >> n >> m >> L;
m++;
cout << "Case #" << test_case+1 << endl;
For(i,1,m)
{
cin >> a[i].first >> a[i].second;
}
solve();
}
return 0;
}
LyogbG9uZ2hvYW5nMDggKi8KI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgaW50IGxvbmcgbG9uZwojZGVmaW5lIG1heG4gMjAwMDEwCiNkZWZpbmUgY21heCAxMDAwMDAwMDA3CiNkZWZpbmUgbGxtYXggKDFMTCA8PCA2MSkKI2RlZmluZSBlbCAnXG4nCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgbXAgbWFrZV9wYWlyCiNkZWZpbmUgZ2V0Yml0KHMsaSkgKChzPj4oaS0xKSkmMSkKI2RlZmluZSBidWcoWCkgeyBjZXJyIDw8ICNYIDw8ICIgPSAiIDw8IChYKSA8PCBlbmRsOyB9CiNkZWZpbmUgSU9TIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyBjaW4udGllKE5VTEwpCiNkZWZpbmUgRm9yKGksYSxiKSBmb3IoaW50IGkgPSBhOyBpIDw9IGI7IGkrKykKI2RlZmluZSBGb3JkKGksYSxiKSBmb3IoaW50IGkgPSBhOyBpID49IGI7IGktLSkKI2RlZmluZSBGb3J2KGksdikgZm9yKGludCBpID0gMCwgX3YgPSB2LnNpemUoKTsgaSA8IF92OyBpKyspCgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdHlwZWRlZiBsb25nIGxvbmcgbGw7CnR5cGVkZWYgcGFpcjxpbnQsIGludD4gcHRxOwp0eXBlZGVmIGxvbmcgZG91YmxlIGRiOwp0eXBlZGVmIHBhaXI8ZGIsIGRiPiBwZGI7CgppbnQgbiwgbSwgTDsKcHRxIGFbbWF4bl07Cgpib29sIGNoZWNrKGRiIHgpCnsKICAgIHZlY3RvciA8cGRiPiB2OwogICAgRm9yKGksMixtKQogICAgewogICAgICAgIGlmIChhW2ldLnNlY29uZCA+IGFbaS0xXS5zZWNvbmQpCiAgICAgICAgewogICAgICAgICAgICBpZiAoeCA+IGFbaV0uc2Vjb25kKSB2LnBiKG1wKGFbaV0uZmlyc3QsYVtpXS5zZWNvbmQpKTsKICAgICAgICAgICAgZWxzZSBpZiAoeCA8IGFbaS0xXS5zZWNvbmQpIGNvbnRpbnVlOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGRiIHgxID0gYVtpXS5zZWNvbmQgLSBhW2ktMV0uc2Vjb25kOwogICAgICAgICAgICAgICAgZGIgeDIgPSB4IC0gYVtpLTFdLnNlY29uZDsKICAgICAgICAgICAgICAgIGRiIHkxID0gYVtpXS5maXJzdCAtIGFbaS0xXS5maXJzdDsKICAgICAgICAgICAgICAgIGRiIHJlcyA9IGFbaS0xXS5maXJzdCArIHkxICogKHgyL3gxKTsKICAgICAgICAgICAgICAgIHYucGIobXAocmVzLCB4KSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgaWYgKHggPiBhW2ktMV0uc2Vjb25kIHx8IHggPCBhW2ldLnNlY29uZCkgY29udGludWU7CiAgICAgICAgICAgIGRiIHgxID0geCAtIGFbaV0uc2Vjb25kOwogICAgICAgICAgICBkYiB4MiA9IGFbaS0xXS5zZWNvbmQgLSBhW2ldLnNlY29uZDsKICAgICAgICAgICAgZGIgeTIgPSBhW2ldLmZpcnN0IC0gYVtpLTFdLmZpcnN0OwogICAgICAgICAgICBkYiB5MSA9ICh4MS94MikgKiB5MjsKICAgICAgICAgICAgdi5wYihtcChhW2ldLmZpcnN0IC0geTEsIHgpKTsKICAgICAgICB9CiAgICB9CiAgICBkYiBsYXN0ID0gMCwgcHJlbGFzdCA9IC0xOwogICAgaW50IGxhbXAgPSBMOwogICAgaW50IHN6ID0gdi5zaXplKCk7CiAgICBGb3IoaSwwLHN6LTEpCiAgICB7CiAgICAgICAgYXV0byB0ZW1wID0gdltpXTsKICAgICAgICBkYiBsID0gbWF4KGRiKDApLCB0ZW1wLmZpcnN0IC0gdGVtcC5zZWNvbmQpOwogICAgICAgIGRiIHIgPSBtaW4oZGIobiksIHRlbXAuZmlyc3QgKyB0ZW1wLnNlY29uZCk7CiAgICAgICAgaWYgKGwgPD0gbGFzdCkgcHJlbGFzdCA9IG1heChwcmVsYXN0LCByKTsKICAgICAgICBib29sIG9rID0gdHJ1ZTsKICAgICAgICBpZiAoaSA8IHN6IC0gMSkKICAgICAgICB7CiAgICAgICAgICAgIGRiIGwxID0gbWF4KGRiKDApLCB2W2krMV0uZmlyc3QgLSB0ZW1wLnNlY29uZCk7CiAgICAgICAgICAgIGlmIChsMSA8PSBsYXN0KSBvayA9IGZhbHNlOwogICAgICAgIH0KICAgICAgICBpZiAob2spCiAgICAgICAgewogICAgICAgICAgICBsYW1wLS07CiAgICAgICAgICAgIGxhc3QgPSBwcmVsYXN0OwogICAgICAgICAgICBwcmVsYXN0ID0gLTE7CiAgICAgICAgfQogICAgICAgIGlmIChsYW1wID09IDAgfHwgbGFzdCA9PSBuKSBicmVhazsKICAgIH0KICAgIGlmIChsYXN0IDwgbikgcmV0dXJuIGZhbHNlOwogICAgcmV0dXJuIHRydWU7Cn0KCnZvaWQgc29sdmUoKQp7CiAgICBkYiBmaXJzdCA9IDAsIGxhc3QgPSAxMDAwMDAwMDAwLCByZXMgPSAtMTsKICAgIC8vY291dCA8PCBjaGVjaygyLjUpIDw8ICcgJyA8PCAiT0siIDw8IGVuZGw7CiAgICAvL3JldHVybjsKICAgIEZvcihpYiwxLDUwKQogICAgewogICAgICAgIGRiIG1pZCA9IChmaXJzdCArIGxhc3QpLzI7CiAgICAgICAgaWYgKGNoZWNrKG1pZCkpCiAgICAgICAgewogICAgICAgICAgICByZXMgPSBtaWQ7CiAgICAgICAgICAgIGxhc3QgPSBtaWQ7CiAgICAgICAgfQogICAgICAgIGVsc2UgZmlyc3QgPSBtaWQ7CiAgICB9CiAgICBpZiAocmVzID09IC0xKQogICAgewogICAgICAgIGNvdXQgPDwgLTEgPDwgZW5kbDsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBGb3IoaSwxLDIpCiAgICB7CiAgICAgICAgZGIgdGVtcCA9IGkgKiByZXM7CiAgICAgICAgbG9uZyBsb25nIHQxID0gcm91bmQodGVtcCk7CiAgICAgICAgaWYgKCBhYnModDEgLSB0ZW1wKSA8PSAwLjAwMSkKICAgICAgICB7CiAgICAgICAgICAgIGNvdXQgPDwgdDEgPDwgJyAnIDw8IGkgPDwgZW5kbDsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KICAgIGNvdXQgPDwgLTEgPDwgZW5kbDsKfQoKaW50MzJfdCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKewogICAgc2V0YnVmKHN0ZG91dCwgTlVMTCk7CglpbnQgVCwgdGVzdF9jYXNlOwoJY2luID4+IFQ7Cglmb3IodGVzdF9jYXNlID0gMDsgdGVzdF9jYXNlICA8IFQ7IHRlc3RfY2FzZSsrKQoJewoJICAgIGNpbiA+PiBuID4+IG0gPj4gTDsKCSAgICBtKys7CgkJY291dCA8PCAiQ2FzZSAjIiA8PCB0ZXN0X2Nhc2UrMSA8PCBlbmRsOwoJCUZvcihpLDEsbSkKCQl7CiAgICAgICAgICAgIGNpbiA+PiBhW2ldLmZpcnN0ID4+IGFbaV0uc2Vjb25kOwoJCX0KCQlzb2x2ZSgpOwoJfQoKCXJldHVybiAwOwp9