main :-
    read_val(X),
    read_val(Y),
    multiply(X, Y, Z),
    print(Z).

multiply(_, 0, 0).
multiply(X, s(Y), Z) :-
    multiply(X, Y, W),
    add(W, X, Z).

add(X, 0, X).
add(X, s(Y), Z) :-
    add(X, Y, W),
    Z = s(W).

read_val(0)    :- peek_code(C), code_type(C, space), !, get_char(_).
read_val(s(X)) :- get_char(C), C == 'S', !, read_val(X).
read_val(X)    :- read_val(X).
