#include using namespace std; struct f{ int q, p, x; }; int main() { int N, Q; cin >> N >> Q; vector ans; set s; s.insert(0); for (int i = 0; i < N; i++) { int X; cin >> X; if (!s.contains(X)) { ans.emplace_back(1, X, X); s.insert(X); } ans.emplace_back(2, X, X); } if (ans.size() > Q) { cout << "No" << endl; return 0; } else { cout << "Yes" << endl; } while (ans.size() != Q) { ans.emplace_back(1, 1, 1); } for (int i = 0; i < ans.size(); i++) { if (ans[i].q == 1) { cout << 1 << ' ' << ans[i].p << ' ' << ans[i].x << endl; } else { cout << 2 << ' ' << ans[i].p << endl; } } return 0; }