Problem:
Score : 100 points

Problem Statement

Snuke has a grid consisting of three squares numbered 1, 2 and 3.
In each square, either 0 or 1 is written. The number written in Square i is s_i.

Snuke will place a marble on each square that says 1.
Find the number of squares on which Snuke will place a marble.

Constraints

Each of s_1, s_2 and s_3 is either 1 or 0.

Input

Input is given from Standard Input in the following format:

s_{1}s_{2}s_{3}

Output

Print the answer.

Sample Input 1

101

Sample Output 1

2

A marble will be placed on Square 1 and 3.

Sample Input 2

000

Sample Output 2

0

No marble will be placed on any square.

Solution in OCaml (4.02.3) (judge verdict: Memory Limit Exceeded)

let none x = x
let n = Scanf.bscanf Scanf.Scanning.stdin "%d\n" none

let split_on_char char string = Str.split (Str.regexp char) string

let a_list =
  let str_list =
    Scanf.bscanf Scanf.Scanning.stdin "%[^\n]" (split_on_char " ") in
  List.map int_of_string str_list

let is_even n =
  if n mod 2 = 0
    then true
    else false


let count_half lst =
  let rec hojo lst count =
    if (List.fold_right (&&) (List.map is_even lst) true)
      then (hojo (List.map (fun n -> n/2) lst) count+1)
      else count
  in hojo lst 0

let () = print_int (count_half a_list)