#include //#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //using namespace atcoder; using namespace std; using ll = long long; #define all(A) A.begin(),A.end() using vll = vector; #define rep(i, n) for (long long i = 0; i < (long long)(n); i++) using Graph = vector>>>; int main() { ll mod = 1000003; ll X, N; cin >> X >> N; vll XD(32); XD[0] = X; rep(i, 31) { XD[i + 1] = (XD[i] * XD[i]) % mod; } ll an = 0; rep(i, N) { ll A; cin >> A; ll k = 1; if (A == 0)an++; else { rep(m, 32) { if (A % 2 != 0) { k *= XD[m]; k %= mod; } A /= 2; } an += k; an %= mod; } } cout << an << endl; }