import sys
def solve(h, w, sizes) -> int:
    if h == 0 or w == 0:
        return 0
    useful_sizes = [s for s in sizes if s <= min(w,h)]
    largest = useful_sizes[-1]
    n = h // largest
    m = w // largest
    rest_h = h % largest
    rest_w = w % largest
    return n * m + solve(rest_h, w, useful_sizes) + solve(rest_w, h - rest_h, useful_sizes)
if __name__ == "__main__":
    lines = [line for line in sys.stdin]
    w, h = [int(x) for x in lines[0].rstrip().split(" ")]
    n = int(lines[1].rstrip())
    sizes = [int(x) for x in lines[2].rstrip().split(" ")]
    possible = (w % sizes[0] == 0) and (h % sizes[0] == 0)
    if not possible:
        print(-1)
        sys.exit(0)
    print(solve(h,w,sizes))
        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  | import sys def solve(h, w, sizes) -> int: if h == 0 or w == 0: return 0 useful_sizes = [s for s in sizes if s <= min(w,h)] largest = useful_sizes[-1] n = h // largest m = w // largest rest_h = h % largest rest_w = w % largest return n * m + solve(rest_h, w, useful_sizes) + solve(rest_w, h - rest_h, useful_sizes) if __name__ == "__main__": lines = [line for line in sys.stdin] w, h = [int(x) for x in lines[0].rstrip().split(" ")] n = int(lines[1].rstrip()) sizes = [int(x) for x in lines[2].rstrip().split(" ")] possible = (w % sizes[0] == 0) and (h % sizes[0] == 0) if not possible: print(-1) sys.exit(0) print(solve(h,w,sizes))  | 
            
        
                    English