#include <iostream>
#include <vector>
#include <tuple>

using namespace std;

vector<tuple<int, int, int>> ops;

void invert() { ops.emplace_back(1, 0, 0); }
void prefix(int l, int r) { ops.emplace_back(2, l, r); }
void suffix(int l, int r) { ops.emplace_back(3, l, r); }

void positivize(int N, int G, vector<int> A);

int main()
{
	int N, G;
	cin >> N >> G;

	vector<int> A(N);
	for (int& i : A)
		cin >> i;

	positivize(N, G, A);

	cout << ops.size() << "\n";
	for (auto [t, l, r] : ops)
	{
		if (t == 1)
			cout << t << "\n";
		else
			cout << t << " " << l << " " << r << "\n";
	}
}
