import java.util.Scanner;


public class More {

	
	public static void main(String[] args) {
	
					
		Scanner sc = new Scanner(System.in);
		
		
		while (sc.hasNextLine()) {
			String input = sc.nextLine().trim();		
			
			
			System.out.println(addOne(input));
		}

	}
	
	public static String addOne(String input) {
		
			
		if (input.endsWith("0")) {			
			return (String.valueOf(Integer.parseInt(input) + 1));
		}
		
		int n = input.length();
		
		boolean overflow = true;
		
		StringBuilder vysledek = new StringBuilder();
		
		for (int i = n - 1; i >= 0; i--) {
			
			int cislo = Integer.parseInt(String.valueOf(input.charAt(i)));
			
			if (overflow) {			
				//System.out.println("overflow");
				
				int nove = cislo == 1 ? 0 : 1;
				vysledek.append(nove);
				
				if (sude(n - i - 1)) {
					//System.out.println("liche");
					if (nove == 0 && cislo == 1) {
						//System.out.println("overflow true");
						overflow = true;
					}
					else overflow = false;
					
				} else {
					//System.out.println("sude");
					if (nove == 0 && cislo == 1) overflow = false;
					else overflow = true;					
				}				
				
			} else {				
				vysledek.append(cislo);				
			}
			
			if (overflow && i == 0) {
				
				int x = n - i - 1;
				while (overflow) {
					vysledek.append("1");
					
					if (sude(x++)) {
						overflow = true;
					} else {
						overflow = false;
					}
				}				
			}
			
		}
		
		return trimLeadingZeros(vysledek.reverse().toString());
		
	}

	private static String trimLeadingZeros(String string) {			
				
		int i = 0;
		
		while (i < string.length() - 1 && string.charAt(i) == '0') {
			i++;
		}
		
		return string.substring(i);
		
	}

	private static boolean sude(int cislo) {
		
		return cislo % 2 == 0;	
		
	}

}















