from math import gcd def sum_of_floor(n, p, q): s = 0 t = gcd(p, q) p, q = p // t, q // t z = 1 while q > 0 and n > 0: t = p // q s = s + z * t * n * (n + 1) // 2 p = p - q * t t = n // q s = s + z * p * t * (n + 1) - z * t * (p * q * t + p + q - 1) // 2 n = n - q * t t = (n * p) // q s = s + z * t * n n = t p, q = q, p z = -z return s n = int(input()) m = int(input()) a = list(map(int, input().split())) b = list(map(int, input().split())) ans = 0 for i in range(n): for j in range(m): ans += sum_of_floor(b[j], a[i], b[j]) * 2 print(ans % (10 ** 9 + 7))