Takahashi, Aoki and Snuke love cookies. They have A, B and C cookies, respectively. Now, they will exchange those cookies by repeating the action below:

* Each person simultaneously divides his cookies in half and gives one half to each of the other two persons.



This action will be repeated until there is a person with odd number of cookies in hand.

How many times will they repeat this action? Note that the answer may not be finite.

Constraints

* 1 ≤ A,B,C ≤ 10^9

Input

Input is given from Standard Input in the following format:


A B C


Output

Print the number of times the action will be performed by the three people, if this number is finite. If it is infinite, print `-1` instead.

Examples

Input

4 12 20


Output

3


Input

14 14 14


Output

-1


Input

454 414 444


Output

1
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
 
public class Main {
 
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n1 = sc.nextInt();
		int n2 = sc.nextInt();
		int n3 = sc.nextInt();
		sc.close();
		boolean rtnFlag = false;
		int count = 0;
		int temp1 = 0;
		int temp2 = 0;
		int temp3 = 0;
		
//		int arrayLength = 0;
		ArrayList<int[]> list = new ArrayList<int[]>();
//		int[][] intArray = new int[arrayLength][3];
//		int[] tempArray = {n1, n2, n3};
//		Arrays.sort(tempArray);
//		list.add(tempArray);
//		intArray[0][0] = n1;
//		intArray[0][1] = n2;
//		intArray[0][2] = n3;
//		arrayLength++;
//		Arrays.sort(intArray[0]);
		while (!rtnFlag) {
			if (n1 % 2 != 0 || n2 % 2 != 0 || n3 % 2 != 0 ) {
				rtnFlag = true;
			} else {
				int[] tempArray = new int[3];
				tempArray[0] = n1;
				tempArray[1] = n2;
				tempArray[2] = n3;
				Arrays.sort(tempArray);
//					if (Arrays.binarySearch(intArray, tempArray) >= 0) {
//						count = -1;
//						rtnFlag = true;
//					} else {
//						intArray[arrayLength++] = tempArray;
//					}
				
				if (isExisted(list, tempArray)) {
					count = -1;
					rtnFlag = true;
					break;
				} else {
					list.add(tempArray);
				}
				temp1 = n1 / 2;
				temp2 = n2 / 2;
				temp3 = n3 / 2;
				n2 = n2 / 2 + temp1;
				n3 = n3 / 2 + temp2;
				n1 = n1 / 2 + temp3;
				count++;
			}
		}
		System.out.println(count);
	}
	
	private static boolean isExisted(ArrayList<int[]> list, int[] intArray) {
		boolean rtnFlag = false;
		for (int[] temp : list) {
			if (Arrays.equals(temp, intArray)) {
				rtnFlag = true;
				break;
			}
		}
		return rtnFlag;
	}
}