#include <vector>
class CloseNumber {
public:
    vector<int> getCloseNumber(int x) {
        // write code here
        int c0=0, c1=0;
        int c= x;
        //find the first "01"
        while((c &1) == 0 && c!=0){
            c = c>>1;
            ++c0;
        }
        while (c&1) {
            c= c>>1;
            ++c1;
        }
        int p = c0+c1;
        if(p == 31 || p ==0){
            return {-1,-1};
        }
        std::cout<< c0 <<" - " << c1<<std::endl;
        //next larger
        int next_larger = x  | ( 1<< p);

        next_larger &= ~( (1<< p) -1 ) ;
        next_larger |= ((1<< (c1-1)) -1);

        //find the firt "10"
        c0=0;
        c1=0;
        c=x;
        while (c&1) {
            ++c0;
            c = c>>1;
        }
        while ((c&1) ==0 && c!=0){
            ++c1;
            c = c>>1;
        
        }
        p = c0+c1;
        if(p == 31 || p ==0){
            return {-1,-1};
        }
        int next_smaller = x & (~0 <<(p+1));
        next_smaller |= ((1 << (c0+1) ) -1) << (c1-1);
        return {next_smaller, next_larger};

       
      
    }
};