#include <bits/stdc++.h>
using namespace std;
using ll = long long;
ll n;
vector<vector<bool>> unrea;
void make(int x0, int y0, int n, int m) {
x0--;y0--;
unrea.assign(n,vector<bool>(n));
x0-=2*m;
y0-=2*m;
x0-=m/2;
y0-=m/2;
for (int i = 0; i<5; i++) for (int j = 0; j < 5; j++) {
if ((i+j)%2==0) {
for (int k = 0; k<m; k++) for (int k2 = 0; k2<m; k2++) {
unrea[x0+m*i+k][y0+m*j+k2]=true;
}
}
}
}
bool query(ll x,ll y) {
if (x>n || x<=0) return false;
if (y>n || y<=0) return false;
cout << "examine " << x << ' ' << y << endl;
//return unrea[x-1][y-1];
string answ;
cin>>answ;
return answ[0]=='t';
}
void solve() {
ll x0, y0;
cin>>n>>x0>>y0;
// make(12,9,19,3);
ll up = -1;
ll M = 0;
for (ll i = 0; i<=32; i++) {
if (!query(x0+(1LL<<i), y0)) {
up=x0+(1LL<<i);
break;
}
}
ll l = x0;
ll r = up;
while (r>l) {
ll mid=(l+r)/2;
if (!query(mid,y0)) r=mid;
else l=mid+1;
}
x0=l-1; // 60, snapped to top
for (ll i = 0; i<=32; i++) {
if (!query(x0,y0+(1LL<<i))) {
up=y0+(1LL<<i);
break;
}
}
l=y0;
r=up;
while (r>l) {
ll mid=(l+r)/2;
if (!query(x0,mid)) r=mid;
else l=mid+1;
}
// cout << "snapped " << endl;
y0=l-1; // 124 snapped to top right
l=0;
r=n+1;
while (r>l) {
ll mid=r-(r-l)/2;
if (query(x0+mid,y0+mid)) l=mid;
else r=mid-1;
}
x0+=l;
y0+=l;
// 158 went to either right or top
// cout << "diag done" << endl;
up=-1;
for (ll i = 0; i<=32; i++) {
if (query(x0+(1LL<<i), y0)) {
up=x0+(1LL<<i);
break;
}
}
if (up==-1) {
// cout << "M by y" << endl;
for (ll i = 0; i<=32; i++) {
if (query(x0,y0+(1LL<<i))) {
up=y0+(1LL<<i);
break;
}
}
if (up!=-1) {
l=y0+1;
r=up;
while (r>l) {
ll mid=(l+r)/2;
if (query(x0,mid)) r=mid;
else l=mid+1;
}
// l is earliest marked pos
M=abs(l-y0)-1;
}
}
else {
// cout << "M by x" << endl;
l=x0+1;
r=up;
while (r>l) {
ll mid=(l+r)/2;
if (query(mid,y0)) r=mid;
else l=mid+1;
}
// l is earliest marked pos
M=abs(l-x0)-1;
}
// cout <<"done! " << endl;
// cout << M << endl;
if (up!=-1) {
while (query(x0+2*M,y0)) x0+=2*M;
while (query(x0,y0+2*M)) y0+=2*M;
}
// top left in main diag
l=0;
r=n+1;
// cout << "hi" << endl;
while (r>l) {
ll mid=r-(r-l)/2;
if (query(x0-mid,y0-mid)) l=mid;
else r=mid-1;
}
cout << "solution " << x0-l/2 << ' ' << y0-l/2 << endl;
}
signed main() {
iostream::sync_with_stdio(false);
cin.tie(nullptr);
int t=1;
while (t--) solve();
}