#include <bits/stdc++.h>
using namespace std;
inline bool _R(int &x) { return scanf("%d", &x) == 1; }
inline bool _R(long long &x) { return scanf("%lld", &x) == 1; }
inline bool _R(double &x) { return scanf("%lf", &x) == 1; }
inline bool _R(char &x) { return scanf(" %c", &x) == 1; }
inline bool _R(char *x) { return scanf("%s", x) == 1; }
template <typename T, typename U>
inline bool _R(pair<T, U> &x) {
  return _R(x.first) && _R(x.second);
}
inline bool Read() { return 1; }
template <typename T, typename... U>
inline bool Read(T &head, U &...tail) {
  return _R(head) && Read(tail...);
}
inline void _W(const int &x) { printf("%d", x); }
inline void _W(const long long &x) { printf("%lld", x); }
inline void _W(const double &x) { printf("%.10f", x); }
inline void _W(const char &x) { putchar(x); }
inline void _W(const char *x) { printf("%s", x); }
template <typename T, typename U>
inline void _W(const pair<T, U> &x) {
  _W(x.first);
  putchar(' ');
  _W(x.second);
}
template <typename T>
inline void _W(const vector<T> &x) {
  for (auto i = x.begin(); i != x.end(); _W(*i++)) {
    if (i != x.begin()) {
      putchar(' ');
    }
  }
}
inline void Write() {}
template <typename T, typename... U>
inline void Write(const T &head, const U &...tail) {
  _W(head);
  putchar(sizeof...(tail) ? ' ' : '\n');
  Write(tail...);
}
const int Move[][2] = {{0, 0}, {1, 0},  {0, 1},  {0, -1}, {-1, 0},
                       {1, 1}, {1, -1}, {-1, 1}, {-1, -1}};
void solve();
int32_t main() {
  solve();
  2333;
}
const int MOD = 1e9 + 7;
template <typename T>
inline T sqr(T a) {
  return a * a;
}
template <typename T>
inline bool chkmin(T &a, T b) {
  return (a > b) ? (a = b, true) : false;
}
template <typename T>
inline bool chkmax(T &a, T b) {
  return (a < b) ? (a = b, true) : false;
}
template <typename T>
T Pow(T a, int t) {
  return (!t) ? 1 : (Pow(a * a, t >> 1) * ((t & 1) ? a : 1));
}
template <typename T>
T qpow(T a, int t) {
  return (!t) ? 1 : (qpow(a * a % MOD, t >> 1) * ((t & 1) ? a : 1) % MOD);
}
const int maxn = 3e5 + 5;
const int INF = 0x3f3f3f3f;
inline int ask(long long x) {
  Write(x, 1);
  fflush(stdout);
  char s[10];
  Read(s);
  return s[0] == 'b';
}
void solve() {
  int n;
  Read(n);
  long long black = 0, white = 1e9;
  if (!ask(0)) swap(black, white);
  for (int i = 1; i < n; i++) {
    long long mid = (black + white + 1) / 2;
    if (ask(mid))
      black = mid;
    else
      white = mid;
  }
  Write(black, 2, white, 0);
}
