#include <bits/stdc++.h>
#define rep(i,n) for (int i = 0; i < (int)(n); i++)
#define REP(i,n) for (int i = 1; i < (int)(n); i++)
#define all(x) x.begin(),x.end()
#define rall(x) x.rbegin(),x.rend()
#define debug(var) do{cout << #var << " : "; view(var);}while(0)
template<class T> bool chmin(T &a, T b) {if(a>b) {a=b;return 1;}return 0;}
template<class T> bool chmax(T &a, T b) {if(a<b) {a=b;return 1;}return 0;}
using namespace std;
template<class T> void view(T e) {cout << e << endl;}
template<class T> void view(const vector<T> &v) {for(const auto &e : v){cout << e << " ";} cout << endl;}
template<class T> void view(const vector<vector<T>> &vv) {for(const auto &v : vv){view(v);}}
using vint = vector<int>;
using vvint = vector<vector<int>>;
using ll = long long;
using vll = vector<ll>;
using vvll = vector<vector<ll>>;
using P = pair<int,int>;
const int inf = 1e9;
const ll inf_l = 1e18;
const int MAX = 1e5;

int main() {
    int n; cin >> n;
    int l = 0, r = n;
    cout << l << endl;
    string sex; cin >> sex;
    if (sex == "Vacant") return 0;
    else {
        while (true) {
            int mid = (l+r)/2;
            cout << mid << endl;
            string sex_ ; cin >> sex_;
            if (sex_ == "Vacant") return 0;
            if (mid&1) {
                if (sex_ == sex) r = mid;
                if (sex_ != sex) l = mid;
            } else {
                if (sex_ == sex) l = mid;
                if (sex_ != sex) r = mid;
            }
        }
    }
}
#include "bits/stdc++.h"
using namespace std;

typedef long long ll;
typedef vector<ll> vl;
typedef vector<vector<ll>> vvl;
typedef pair<ll, ll> P;
#define rep(i, n) for(ll i = 0; i < n; i++)
#define REP(i, a, b) for(ll i = a; i <= b; i++)
#define out(x) std::cout << x << '\n'
#define all(a) a.begin(), a.end()
#define rall(a) a.rbegin(), a.rend()
#define pb push_back
#define sz(x) ((int)(x).size())
#define chmax(x, y) x = max(x, y)
#define chmin(x, y) x = min(x, y)
ll gcd(ll a, ll b) { return b ? gcd(b, a % b) : a; }
ll lcm(ll a, ll b) { ll g = gcd(a, b); return a / g * b; }
const int dx[4] = { 1, 0, -1,  0 };
const int dy[4] = { 0, 1,  0, -1 };
const int INF = (int)1e9;
const ll  inf = (ll)1e18;
const int mod = 1000000007;
const int MAX_N = 100010;
const double PI = acos(-1);

int N;
string a0;

string ask(int i) {
    out(i);
    fflush(stdout);
    
    string res; 
    cin >> res;
    return res;
}

void f(int l, int r) {
    int md = (l + r) / 2;

    string res = ask(md);
    if (res == "Vacant") return;

    if ((md % 2 == 0 && a0 == res) 
        || (md % 2 == 1 && a0 != res)) {
        f(md + 1, r);
    }
    else {
        f(l, md);
    }
}

int main() {
    cin >> N;

    a0 = ask(0);
    if (a0 == "Vacant") return 0;

    f(1, N);

    return 0;
}