#include #include #include #include #include #include #include #include #include #include #include #include #include #include long long int gcd(const long long int a, const long long int b) { return b == 0 ? a : gcd(b, a % b); } int main() { std::cin.tie(nullptr); std::cin.sync_with_stdio(false); int n, m; std::cin >> n >> m; std::vector a_num(n), b_num(m); for (auto& a : a_num) std::cin >> a; for (auto& b : b_num) std::cin >> b; constexpr long long int MOD = 1000000007; long long int result{ 0 }; for (const auto a : a_num) { for (const auto b : b_num) { const auto g = gcd(a, b); const auto bd = b / g; result = (result + ((b + 1) * a % MOD - (bd - 1) * g % MOD)) % MOD; } } std::cout << (result + MOD) % MOD << '\n'; }