1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <bits/stdc++.h>
using namespace std;

int main(){
	ios_base::sync_with_stdio(false), cin.tie(nullptr);
	int N, S;
	cin >> N >> S;
	vector<int> in_S(N+1);
	for(int i = 0; i < S; i++){
		int a;
		cin >> a;
		in_S[a] = 1;
	}
	vector<tuple<int, int, int> > ops;
	for(int i = 1; i <= N; i++){
		ops.push_back({3, i, 0});
	}
	int cur;
	if(in_S[1]){
		ops.push_back({1, 1, 1});
	} else {
		ops.push_back({1, N+1, N+1});
	}
	cur = 2*N+1;
	for(int i = 2; i <= N; i++){
		if(in_S[i]){
			ops.push_back({1, cur, i});
		} else {
			ops.push_back({2, cur, N+i});
		}
		cur = 2*N + i;
	}
	cout << ops.size() << '\n';
	for(auto [a, b, c] : ops){
		if(a == 3){
			cout << a << ' ' << b << '\n';
		} else {
			cout << a << ' ' << b << ' ' << c << '\n';
		}
	}
}