5 i, j, n, p1min, p2min, p1max, p2max: longint;
\r
6 a: array [1..maxn] of longint;
\r
8 function ask(i, j, k: longint): longint;
\r
10 writeln(i, ' ', j, ' ', k);
\r
16 procedure find4(i, j, k, l: longint; var r1, r2: longint; s: longint);
\r
18 v1, v2, v3, v4: longint;
\r
24 if v1 = v2 then begin
\r
25 if v1 * s < v3 * s then begin
\r
33 if v1 = v3 then begin
\r
34 if v1 * s < v2 * s then begin
\r
42 if v1 = v4 then begin
\r
43 if v1 * s < v2 * s then begin
\r
55 assert((3 <= n) and (n <= 200));
\r
57 writeln('OK 1 2 3');
\r
67 while (i <= n) do begin
\r
68 find4(p1min, p2min, i - 1, i, p1min, p2min, 1);
\r
69 find4(p1max, p2max, i - 1, i, p1max, p2max, -1);
\r
71 if i = n + 1 then begin
\r
73 while (j = p1min) or (j = p2min) do inc(j);
\r
74 find4(p1min, p2min, j, i - 1, p1min, p2min, 1);
\r
76 while (j = p1max) or (j = p2max) do inc(j);
\r
77 find4(p1max, p2max, j, i - 1, p1max, p2max, -1);
\r
81 for i := 1 to n do begin
\r
84 else if i = p2min then
\r
86 else if i = p1max then
\r
88 else if i = p2max then
\r
91 a[i] := ask(p1min, i, p1max);
\r
95 for i := 1 to n do begin
\r