// 値の種類数 回だけクエリ1が必要。余ったらテキトーにブラブラする。 #include #include #include #define rep(i, n) for(i = 0; i < n; i++) using namespace std; int n, q; int X[200000]; map mp; vector xs; int main() { int i; cin >> n >> q; rep(i, n) { cin >> X[i]; if (mp.find(X[i]) == mp.end()) { mp[X[i]] = mp.size(); xs.push_back(X[i]); } } if (mp.size() + n > q) { cout << "No" << endl; return 0; } cout << "Yes" << endl; rep(i, xs.size()) { cout << 1 << " " << 1 + i << " " << xs[i] << endl; } rep(i, n) { cout << 2 << " " << mp[X[i]] + 1 << endl; } rep(i, q - n - (int)mp.size()) { cout << "1 1 1" << endl; } return 0; }