func_code_string: #include <bits/stdc++.h>   using namespace std;   long long choose(long long n, long long k);   bool isprime(long long n);   long long power(long long x, long long y, long long p);   long long power(long long x, long long y);   long long gcd(long long a, long long b);   int main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);     long long n, k;     cin >> n >> k;     queue<long long> q;     set<long long> st;     for (int i = 0; i < n; i++) {       long long x;       cin >> x;       if (st.find(x) == st.end()) {         if (q.size() == k) {           st.erase(st.find(q.front()));           q.pop();           q.push(x);         } else {           q.push(x);         }         st.insert(x);       }     }     cout << q.size() << endl;     vector<long long> v;     while (!q.empty()) v.push_back(q.front()), q.pop();     for (int i = v.size() - 1; i > -1; i--) cout << v[i] <<    ;     return 0;   }   long long gcd(long long a, long long b) {     if (b == 0) return a;     return gcd(b, a % b);   }   long long choose(long long n, long long k) {     if (k == 0) return 1;     return (n * choose(n - 1, k - 1)) / k;   }   bool isprime(long long n) {     for (long long i = 2; i * i <= n; i++) {       if (n % i == 0) return false;     }     return true;   }   long long power(long long x, long long y, long long p) {     long long res = 1;     x = x % p;     while (y > 0) {       if (y & 1) res = (res * x) % p;       y = y >> 1;       x = (x * x) % p;     }     return res;   }   long long power(long long x, long long y) {     long long res = 1;     while (y > 0) {       if (y & 1) res = res * x;       y = y >> 1;       x = x * x;     }     return res;   }   