def parse(inFile):
    return tuple(inFile.getInts() + [inFile.getInts()])
 
def solve((R,K,N,groups)):
    i = 0
    pos = 0
    money = 0
    if (K > sum(groups)):
        K = sum(groups)
    cache = [[-1,-1] for ij in xrange(N)]
    while (i < R):
        if (cache[pos][0] == -1):
            cache[pos] = [i, money]
        else:
            [i2, money2] = cache[pos]
            repeats = (R - i - 1) / (i - i2)
            if (repeats >= 0):
                i += repeats * (i - i2)
                money += repeats * (money - money2)
                cache = [[-1,-1] for ij in xrange(N)]
        people = 0
        while (people + groups[pos] <= K):
            people += groups[pos]
            pos += 1
            if (pos == N):
                pos = 0
        money += people
        i += 1
    return money

if __name__ == "__main__":
    from GCJ import GCJ
    GCJ(parse, solve, "/Users/lpebody/gcj/2010_q/", "c").run()

            
