#ifdef NACHIA #define _GLIBCXX_DEBUG #else #define NDEBUG #endif #include #include #include #include #include using i64 = long long; using u64 = unsigned long long; #define rep(i,n) for(i64 i=0; i void chmin(A& l, const A& r){ if(r < l) l = r; } template void chmax(A& l, const A& r){ if(l < r) l = r; } using namespace std; void testcase(){ i64 N, Q; cin >> N >> Q; vector>> queries; map buf; rep(i,N){ i64 x; cin >> x; if(buf.count(x)){ queries.push_back({ 2, {buf[x],x} }); } else { i64 s = buf.size(); queries.push_back({ 1, {s,x} }); queries.push_back({ 2, {s,x} }); buf[x] = s; } } if(queries.size() > Q){ cout << "No\n"; } else { cout << "Yes\n"; while(queries.size() < Q) queries.push_back({ 1, {0,1} }); for(auto [t,v] : queries){ cout << t; auto [x,y] = v; x++; if(t == 1){ cout << " " << x << " " << y << "\n"; } else { cout << " " << x << "\n"; } } } } int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); testcase(); return 0; }