import java.util.ArrayList;
import java.util.Scanner;

public class Main {

	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		ArrayList<Integer> aEven = new ArrayList<>(); 
		for(int i = 0; i < n; i++) {
			int ai = sc.nextInt();
			
			if((ai % 2) == 0) {
				aEven.add(ai);
			}
		}
		
		aEven.sort(null);
		
		int count = 0;
		System.out.println(operation(aEven, count));
		
		
	}
	
	static int operation(ArrayList<Integer> al, int count) {
		if(al.size() == 0) {
			return count;
		}else {
			
			int target = al.get(al.size() - 1);
			target = target / 2;
			count++;
			
			if((target % 2) == 0) {
				al.set(al.size() - 1, target);
			}else {
				al.remove(al.size() - 1);
			}
			
			count = operation(al, count);
			
			return count;
		}
		
	}
} import java.util.ArrayList; ArrayList java.util import java.util.Scanner; Scanner java.util public class Main {

	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		ArrayList<Integer> aEven = new ArrayList<>(); 
		for(int i = 0; i < n; i++) {
			int ai = sc.nextInt();
			
			if((ai % 2) == 0) {
				aEven.add(ai);
			}
		}
		
		aEven.sort(null);
		
		int count = 0;
		System.out.println(operation(aEven, count));
		
		
	}
	
	static int operation(ArrayList<Integer> al, int count) {
		if(al.size() == 0) {
			return count;
		}else {
			
			int target = al.get(al.size() - 1);
			target = target / 2;
			count++;
			
			if((target % 2) == 0) {
				al.set(al.size() - 1, target);
			}else {
				al.remove(al.size() - 1);
			}
			
			count = operation(al, count);
			
			return count;
		}
		
	}
} Main public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		ArrayList<Integer> aEven = new ArrayList<>(); 
		for(int i = 0; i < n; i++) {
			int ai = sc.nextInt();
			
			if((ai % 2) == 0) {
				aEven.add(ai);
			}
		}
		
		aEven.sort(null);
		
		int count = 0;
		System.out.println(operation(aEven, count));
		
		
	} main {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		ArrayList<Integer> aEven = new ArrayList<>(); 
		for(int i = 0; i < n; i++) {
			int ai = sc.nextInt();
			
			if((ai % 2) == 0) {
				aEven.add(ai);
			}
		}
		
		aEven.sort(null);
		
		int count = 0;
		System.out.println(operation(aEven, count));
		
		
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int n = sc.nextInt(); n sc.nextInt() sc.nextInt sc ArrayList<Integer> aEven = new ArrayList<>(); aEven new ArrayList<>() for(int i = 0; i < n; i++) {
			int ai = sc.nextInt();
			
			if((ai % 2) == 0) {
				aEven.add(ai);
			}
		} int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
			int ai = sc.nextInt();
			
			if((ai % 2) == 0) {
				aEven.add(ai);
			}
		} {
			int ai = sc.nextInt();
			
			if((ai % 2) == 0) {
				aEven.add(ai);
			}
		} int ai = sc.nextInt(); ai sc.nextInt() sc.nextInt sc if((ai % 2) == 0) {
				aEven.add(ai);
			} (ai % 2) == 0 (ai % 2) ai 2 0 {
				aEven.add(ai);
			} aEven.add(ai) aEven.add aEven ai aEven.sort(null) aEven.sort aEven null int count = 0; count 0 System.out.println(operation(aEven, count)) System.out.println System.out System System.out operation(aEven, count) operation aEven count String[] args args static int operation(ArrayList<Integer> al, int count) {
		if(al.size() == 0) {
			return count;
		}else {
			
			int target = al.get(al.size() - 1);
			target = target / 2;
			count++;
			
			if((target % 2) == 0) {
				al.set(al.size() - 1, target);
			}else {
				al.remove(al.size() - 1);
			}
			
			count = operation(al, count);
			
			return count;
		}
		
	} operation {
		if(al.size() == 0) {
			return count;
		}else {
			
			int target = al.get(al.size() - 1);
			target = target / 2;
			count++;
			
			if((target % 2) == 0) {
				al.set(al.size() - 1, target);
			}else {
				al.remove(al.size() - 1);
			}
			
			count = operation(al, count);
			
			return count;
		}
		
	} if(al.size() == 0) {
			return count;
		}else {
			
			int target = al.get(al.size() - 1);
			target = target / 2;
			count++;
			
			if((target % 2) == 0) {
				al.set(al.size() - 1, target);
			}else {
				al.remove(al.size() - 1);
			}
			
			count = operation(al, count);
			
			return count;
		} al.size() == 0 al.size() al.size al 0 {
			return count;
		} return count; count {
			
			int target = al.get(al.size() - 1);
			target = target / 2;
			count++;
			
			if((target % 2) == 0) {
				al.set(al.size() - 1, target);
			}else {
				al.remove(al.size() - 1);
			}
			
			count = operation(al, count);
			
			return count;
		} int target = al.get(al.size() - 1); target al.get(al.size() - 1) al.get al al.size() - 1 al.size() al.size al 1 target = target / 2 target target / 2 target 2 count++ count if((target % 2) == 0) {
				al.set(al.size() - 1, target);
			}else {
				al.remove(al.size() - 1);
			} (target % 2) == 0 (target % 2) target 2 0 {
				al.set(al.size() - 1, target);
			} al.set(al.size() - 1, target) al.set al al.size() - 1 al.size() al.size al 1 target {
				al.remove(al.size() - 1);
			} al.remove(al.size() - 1) al.remove al al.size() - 1 al.size() al.size al 1 count = operation(al, count) count operation(al, count) operation al count return count; count ArrayList<Integer> al al int count count public class Main {

	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		ArrayList<Integer> aEven = new ArrayList<>(); 
		for(int i = 0; i < n; i++) {
			int ai = sc.nextInt();
			
			if((ai % 2) == 0) {
				aEven.add(ai);
			}
		}
		
		aEven.sort(null);
		
		int count = 0;
		System.out.println(operation(aEven, count));
		
		
	}
	
	static int operation(ArrayList<Integer> al, int count) {
		if(al.size() == 0) {
			return count;
		}else {
			
			int target = al.get(al.size() - 1);
			target = target / 2;
			count++;
			
			if((target % 2) == 0) {
				al.set(al.size() - 1, target);
			}else {
				al.remove(al.size() - 1);
			}
			
			count = operation(al, count);
			
			return count;
		}
		
	}
} public class Main {

	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		ArrayList<Integer> aEven = new ArrayList<>(); 
		for(int i = 0; i < n; i++) {
			int ai = sc.nextInt();
			
			if((ai % 2) == 0) {
				aEven.add(ai);
			}
		}
		
		aEven.sort(null);
		
		int count = 0;
		System.out.println(operation(aEven, count));
		
		
	}
	
	static int operation(ArrayList<Integer> al, int count) {
		if(al.size() == 0) {
			return count;
		}else {
			
			int target = al.get(al.size() - 1);
			target = target / 2;
			count++;
			
			if((target % 2) == 0) {
				al.set(al.size() - 1, target);
			}else {
				al.remove(al.size() - 1);
			}
			
			count = operation(al, count);
			
			return count;
		}
		
	}
} Main
import java.util.ArrayList;
import java.util.Scanner;

public class Main {

	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		ArrayList<Integer> aEven = new ArrayList<>(); 
		for(int i = 0; i < n; i++) {
			int ai = sc.nextInt();
			
			if((ai % 2) == 0) {
				aEven.add(ai);
			}
		}
		
		aEven.sort(null);
		
		int count = 0;
		System.out.println(operation(aEven, count));
		
		
	}
	
	static int operation(ArrayList<Integer> al, int count) {
		if(al.size() == 0) {
			return count;
		}else {
			
			int target = al.get(al.size() - 1);
			target = target / 2;
			count++;
			
			if((target % 2) == 0) {
				al.set(al.size() - 1, target);
			}else {
				al.remove(al.size() - 1);
			}
			
			count = operation(al, count);
			
			return count;
		}
		
	}
}