#include using namespace std; using ll = long long; int main() { int N, Q; cin >> N >> Q; map pos; vector> query; for(int i = 0; i < N; i++) { int x; cin >> x; if(!pos.count(x)) { pos[x] = pos.size() + 1; query.push_back(make_tuple(1, pos.size(), x)); } query.push_back(make_tuple(2, pos[x], 0)); } while(query.size() < Q) { query.push_back(make_tuple(1, 1 << 20, 1)); } if(query.size() <= Q) { cout << "Yes" << "\n"; for(auto [t, p, x] : query) { if(t == 1) { cout << t << " " << p << " " << x << "\n"; }else { cout << t << " " << p << "\n"; } } }else { cout << "No" << "\n"; } }