#include using namespace std; #ifdef LOCAL #include "settings/debug.cpp" #define _GLIBCXX_DEBUG #else #define Debug(...) void(0) #endif #define rep(i, n) for (int i = 0; i < (n); ++i) using ll = long long; using ull = unsigned long long; #include using mint = atcoder::dynamic_modint<1>; int main() { int n, m, k; cin >> n >> m >> k; mint::set_mod(k); char op; cin >> op; mint ans = 0; ll row = 0; rep(i, m) { int x; cin >> x; row += x; } rep(i, n) { ll x; cin >> x; if (op == '+') { ans += row + x * m; } else { ans += row * x; } } cout << ans.val() << endl; return 0; }