#include using namespace std; using namespace chrono; #if __has_include() #include using namespace atcoder; #endif int main() { int64_t n, m, k; cin >> n >> m >> k; vector as(m); for (auto &&a : as) { cin >> a; } vector bs(10); vector cnt(1000001); for (auto &&a : as) { if (a < 10) { bs[a]++; continue; } for (int64_t i = a; i <= 1000000; i += a) { cnt[i]++; } } for (int64_t a = 1; a < 10; a++) { for (int64_t i = a; i <= 1000000; i += a) { cnt[i] += bs[a]; } } using mint = modint998244353; mint ans = 0; for (int64_t i = 1; i <= n; i++) { ans += 1 - (mint(m - cnt[i]) / m).pow(k); } cout << ans.val() << endl; return 0; }