import java.util.*;


public class ex2 {


    public static int f(int x) {


        if (x <= 0)

            return  0;


        return 2 * (((int)Math.pow(2,x)) - 1);


    }


    public static void main(String[] args) {


        List<Object> dp = new ArrayList<Object>();


        int x = -3646397;

        boolean flag = false;

        dp.add(1);

        dp.add(-1);



        for (int i=2; i <=1000000000; i++) {


            for (int j = f(i-2) ; j < f(i-1); j++) {


                int val = (int) dp.get(j);


                dp.add(val + i);

                dp.add(val - i);


                if ((x == val + i) || (x == val - i)) {

                    flag = true;

                    break;

                }


            }

            System.out.println(i);

            if(flag == true){

                System.out.println(i);

                System.out.println("end");

                break;

            }

        }

    }

}


남용의 잘못된예