#include <bits/stdc++.h>
using namespace std;
template <class htpe, class cmp>
using heap = priority_queue<htpe, vector<htpe>, cmp>;
template <class htpe>
using min_heap = heap<htpe, greater<htpe> >;
template <class htpe>
using max_heap = heap<htpe, less<htpe> >;
const int INF = 1791791791;
const long long INFLL = 1791791791791791791ll;
bool query(int x, int y) {
  cout << 1 << " " << x << " " << y << endl;
  cout.flush();
  string s;
  cin >> s;
  return s == "TAK";
}
bool is_two_answers(int a, int b) { return query(a, b) && query(b, a); }
int find_on_segment(int l, int r, int tr) {
  l--;
  while (l < r - 1) {
    int mid = (l + r + tr) >> 1;
    if (!query(mid, mid + 1))
      l = mid;
    else
      r = mid;
  }
  return r;
}
int main() {
  int n, k;
  cin >> n >> k;
  int a = find_on_segment(1, n, 0);
  int b = find_on_segment(a + 1, n, 1);
  if (a + 1 > n || !is_two_answers(a, b)) b = find_on_segment(1, a - 1, 0);
  cout << 2 << " " << a << " " << b << endl;
  cout.flush();
  return 0;
}
