#include #include #include #include using i64 = long long; using u64 = unsigned long long; #define rep(i,n) for(int i=0; i void chmin(A& l, const A& r){ if(r < l) l = r; } template void chmax(A& l, const A& r){ if(l < r) l = r; } #include using Modint = atcoder::static_modint<998244353>; using namespace std; void testcase(){ i64 M, N; cin >> M >> N; vector A(N+2); rep(i,N) cin >> A[i+1]; A[N+1] = M+1; Modint ans; rep(i,N+1){ i64 d = A[i+1] - A[i] - 1; ans += Modint(d) * Modint(d+1) * Modint(d*2+1) / 6; } cout << ans.val() << endl; } int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); testcase(); return 0; }