1class SmallestInfiniteSet {2private PriorityQueue<Integer> q;3private int index;45public SmallestInfiniteSet() {6q = new PriorityQueue<Integer>();7index = 1;8}910public int popSmallest() {11if (q.size() > 0) {12return q.poll();13}14return index++;15}1617private boolean is_in_q(int num) {18for (int i : q) {19if (i == num) {20return true;21}22}23return false;24}2526public void addBack(int num) {27if (num < index && !is_in_q(num)) {28q.add(num);29}30}31}