#include <bits/stdc++.h>
using namespace std;
int n, k;
char ans[3];
pair<int, int> interval[3], out, nr;
pair<int, int> binarySearch(int a, int b) {
  int x1, x2, diff;
  if (a + 1 >= b) {
    return make_pair(a, b);
  } else if (b - a + 1 == 3 || b - a + 1 == 4) {
    x1 = a;
    x2 = b;
    diff = 1;
  } else {
    diff = ceil((double)(b - a + 1) / 4 - 0.5);
    x1 = a + diff;
    x2 = b - diff;
  }
  printf("1 %d %d\n", x1, x2);
  fflush(stdout);
  scanf("%s", ans);
  if (!strcmp(ans, "TAK")) {
    return binarySearch(a, x1 + diff);
  } else {
    return binarySearch(x2 - diff, b);
  }
}
int findNumber(pair<int, int> po) {
  bool b1, b2;
  b1 = b2 = 0;
  printf("1 %d %d\n", po.first, po.second);
  fflush(stdout);
  scanf("%s", ans);
  if (!strcmp(ans, "TAK")) {
    b1 = 1;
  }
  printf("1 %d %d\n", po.second, po.first);
  fflush(stdout);
  scanf("%s", ans);
  if (!strcmp(ans, "TAK")) {
    b2 = 1;
  }
  if (b1 && b2) {
    printf("2 %d %d\n", po.first, po.second);
    fflush(stdout);
    return -1;
  } else if (b1) {
    return po.first;
  } else {
    return po.second;
  }
}
int checkNumbers(pair<int, int> po) {
  printf("1 %d %d\n", po.first, out.first);
  fflush(stdout);
  scanf("%s", ans);
  if (!strcmp(ans, "TAK")) {
    return po.first;
  }
  printf("1 %d %d\n", po.second, out.first);
  fflush(stdout);
  scanf("%s", ans);
  if (!strcmp(ans, "TAK")) {
    return po.second;
  }
  return -1;
}
int main() {
  scanf("%d%d", &n, &k);
  interval[0] = binarySearch(1, n);
  out.first = findNumber(interval[0]);
  if (out.first == -1) {
    return 0;
  }
  if (out.first < n) {
    interval[1] = binarySearch(out.first + 1, n);
  } else {
    interval[1] = make_pair(out.first - 1, out.first - 1);
  }
  if (out.first > 1) {
    interval[2] = binarySearch(1, out.first - 1);
  } else {
    interval[2] = make_pair(out.first + 1, out.first + 1);
  }
  nr = make_pair(checkNumbers(interval[1]), checkNumbers(interval[2]));
  if (nr.first != -1) {
    out.second = nr.first;
  } else {
    out.second = nr.second;
  }
  printf("2 %d %d\n", out.first, out.second);
}
