#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long LL; typedef unsigned long long ULL; #define MEM(a,b) memset((a),(b),sizeof(a)) const LL INF = 1e9 + 7; const int N = 2e5 + 10; int main() { //freopen("input.txt", "r", stdin); //freopen("output.txt", "w", stdout); int n, q; scanf("%d%d", &n, &q); map mc; int cur = 0; vector> qr; for (int i = 1; i <= n; i++) { int x; scanf("%d", &x); if (!mc.count(x)) { if (q == 0) puts("No"), exit(0); q--; cur++; qr.emplace_back(1, cur, x); mc[x] = cur; } if (q == 0) puts("No"), exit(0); q--; qr.emplace_back(2, mc[x], 0); } while (q--) qr.emplace_back(1, 1, 1); puts("Yes"); for (auto& [op, p, x] : qr) { if (op == 1) printf("%d %d %d\n", op, p, x); else printf("%d %d\n", op, p); } return 0; }