import java.util.*; public class Main { static final int MOD = 1004535809; public static void main (String[] args) { Scanner sc = new Scanner(System.in); String str = sc.next(); int length = (str.length() + 8) / 9; long[] arr = new long[length]; for (int i = 0; i < length; i++) { if (i == length - 1) { arr[length - i - 1] = Integer.parseInt(str.substring(0, str.length() - i * 9)); } else { arr[length - i - 1] = Integer.parseInt(str.substring(str.length() - (i + 1) * 9, str.length() - i * 9)); } } int start = 0; long mod = 0; long base = (long)(Math.pow(2, 30)); while (start < length) { long next = 0; for (int i = start; i < length; i++) { arr[i] += next * 1000000000; next = arr[i] % base; arr[i] /= base; if (start == i && arr[i] == 0) { start++; } } mod += Integer.bitCount((int)next); mod %= MOD; } System.out.println(mod); } }