import java.util.Scanner;

/**
 * @author supermejane
 * @date 2025/10/11 15:36
 * @description
 */
public class Main {
	
  	//1.一开始看错题目,以为是min(a, b)为准,忽略max(a, b)更长的部分, 这道题直接a ^ b之后按照上一题的方法计算1的位数就行了
//    2.如果要以min(a, b)为准,把
//    int big = Math.max(a, b);
//    int cnt = 0;
//            while (big > 0) {
//        big >>= 1;
//        cnt++;
//    }
    //替换为
//    int small = Math.min(a, b);
//    int cnt = 0;
//            while (small > 0) {
//        small >>= 1;
//        cnt++;
//    }
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        int a = in.nextInt(), b = in.nextInt();
        if (a == b) System.out.println(0);
        else {
            int big = Math.max(a, b);
            int cnt = 0;
            while (big > 0) {
                big >>= 1;
                cnt++;
            }
            int big2 = Math.max(a, b) & ((1 << cnt) - 1);
            int n = big2 ^ Math.min(a, b);
            int result =  0;
            while (n > 0) {
                result += n & 1;
                n = n >> 1;
            }
            System.out.println(result);
        }
    }
}