#include <bits/stdc++.h>
using namespace std;
struct P {
  int x, y, z;
  bool operator<(const P &a) const { return x < a.x; }
};
vector<int> v[2];
int a, c, i, b, n, m, k, d;
long long o[221111];
long long l[222221];
long long j[222221];
long long e[222222];
int dx[10] = {0, 1, 0, -1, 1, 1, -1, -1}, dy[10] = {1, 0, -1, 0, 1, -1, 1, -1},
    dz[10] = {0, 0, 0, 0, 1, -1};
long long x, y, mod = 1000000007, mod2 = 1000000009, mod3 = 2017;
long long z;
double pi = 3.14159265;
P u[1];
stack<int> s;
queue<int> q;
char r[6];
bool as(P a, P b) {
  if (a.x != b.x) return a.x < b.x;
  return a.y < b.y;
}
int main() {
  srand((int)time(NULL));
  scanf("%lld %d", &z, &a);
  x = 1, y = z;
  for (;;) {
    for (int t = 1; y - x + 1 > 4 * a + 4; t++) {
      printf("%lld %lld\n", x, (x + y) / 2);
      fflush(stdout);
      scanf("%s", r);
      if (r[0] == 'Y')
        y = (x + y) / 2;
      else
        x = (x + y) / 2 + 1;
      x = max((long long)1, x - a);
      y = min(z, y + a);
    }
    long long i = rand() % (y - x + 1) + x;
    printf("%lld %lld\n", i, i);
    fflush(stdout);
    scanf("%s", r);
    if (r[0] == 'Y') return 0;
    x = max((long long)1, x - a);
    y = min(z, y + a);
  }
}
