1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import sys


input = sys.stdin.readline

############ ---- Input Functions ---- ############

def inp():
    return(int(input()))
def inlt():
    return(list(map(int,input().split())))
def insr():
    s = input()
    return(list(s[:len(s) - 1]))
def invr():
    return(map(int,input().split()))

def suma(lista):
    return(sum(int(x) for x in lista))

debug = False
sciana = inlt()
a = sciana[0]
b = sciana[1]
ile = inp()
d = inlt()

if (a % d[0] + b % d[0] != 0):
    print(-1)
else:
    ile_obrazow = 0
    ktory_obraz = len(d) - 1

    a_tmp = a
    b_tmp = b

    gl = 10

    def obrazy(a, b):
        if a * b == 0:
            return 0
        ktory_obraz = len(d) - 1
        max_rozmiar = d[ktory_obraz]
        while (max_rozmiar > a) or (max_rozmiar > b):
            ktory_obraz = ktory_obraz - 1
            max_rozmiar = d[ktory_obraz]
        if debug : print(a, b, "max_rozmiar", max_rozmiar, ";", a//max_rozmiar, b//max_rozmiar, a//max_rozmiar * b//max_rozmiar)
        ile_obrazow = a//max_rozmiar * b//max_rozmiar
        if debug : print("idziemy wglab", b, a%max_rozmiar, "oraz", a - a%max_rozmiar, b%max_rozmiar)
        ile_obrazow_a = obrazy(b, a%max_rozmiar)
        ile_obrazow_b = obrazy(a - a%max_rozmiar, b%max_rozmiar)
        if debug : print(a, b, ile_obrazow, ile_obrazow_a, ile_obrazow_b)
        return ile_obrazow + ile_obrazow_a + ile_obrazow_b

    print(obrazy(a, b))