#include using namespace std; using ll = long long; using ull = unsigned long long; #define FOR(i,a,b) for(ll i=(a);i<(b);++i) #define ALL(v) (v).begin(), (v).end() #define p(s) cout<<(s)< void vprint(T &V){ for(auto v : V){ cout << v << " "; } cout << endl; } ll N, K; ll bit_diff(ll a, ll b){ ll count = 0; FOR(i, 0, N){ ll f0 = (a>>i)&1; ll f1 = (b>>i)&1; if(f0==f1){ continue; } else if(f0==0 && f1==1){ count++; } else if(f0==1 && f1==0){ return -1; } } return count; } int main(){ cin.tie(0); ios::sync_with_stdio(false); // input cin >> N >> K; if(K==0){ ll ans = 1; FOR(i, 1, N+1){ ans *= i; ans %= mod; } p(ans); return 0; } vector A(N); FOR(i, 0, K){ ull a; cin >> a; A[i] = a; } A.push_back(0); // A.push_back((1<