#include<bits/stdc++.h> using namespace std; class SmallestInfiniteSet { public: const int length = 1010; bool nums[1010]; SmallestInfiniteSet() { for(int i = 0 ; i <length ;i++) nums[i] = 1; } int popSmallest() { int i = 1; while(nums[i]==0) i++; nums[i] = 0; return i; } void addBack(int num) { nums[num] = 1; } }; int main(){ SmallestInfiniteSet sol; sol.addBack(2); cout<<sol.popSmallest()<<endl;; cout<<sol.popSmallest()<<endl;; cout<<sol.popSmallest()<<endl;; sol.addBack(1); cout<<sol.popSmallest()<<endl;; cout<<sol.popSmallest()<<endl;; cout<<sol.popSmallest()<<endl;; return 0; }