import sys

def fprint(s):
    print s
    sys.stdout.flush()

def solve(n):
    start = 1
    guess = n / 2
    buss = []

    while start < n:
        fprint("1 %s %s" % (start, guess))
        response = int(raw_input())
        if not response:
            while response == 0:
                if guess / 2 < start:
                    if guess - 1 > start:
                        guess -= 1
                    else:
                        break
                else:
                    guess = guess / 2
                fprint("1 %s %s" % (start, guess))
                response = int(raw_input())
            if response == 1:
                guess = guess + 1
                if guess < n:
                    fprint("1 %s %s" % (start, guess))
                    while response == 1 and guess < n:
                        guess = guess + 1
                        fprint("1 %s %s" % (start, guess))
                        response = int(raw_input())
                buss.append(str(start))
                start += guess - 1
            else:
                buss.append(str(start))
                guess += 1
                start += 1
        else:
            while response == 1 and guess < n:
                guess = guess + 1
                fprint("1 %s %s" % (start, guess))
                response = int(raw_input())
            buss.append(str(start))
            start += guess - 1
        guess = guess + (n - guess) / 2
    fprint("2 %s %s" % (len(buss), " ".join(buss)))

n = int(raw_input())
solve(n)