#include using namespace std; int main () { int N, L; cin >> L >> N; std::vector A(N); for (int a : A) cin >> a; A.push_back(L); vector B(N+1); B[0] = A[0]; for (int i = 0; i < N; i ++) B[i+1] = A[i+1] - A[i]; int rs = L - B[0] - B.back(); assert(rs == A[N-1] - A[0]); vector dp(rs + 1, 0); dp[0] = 1; for (int i = 1; i < N; i ++) { for (int j = rs; j >= B[i]; j --) { dp[j] = min(1, dp[j] + dp[j-B[i]]); } } int ans = L; for (int i = 0; i <= rs; i ++) { if (dp[i]) { cout << i << " "; ans = min(ans, abs(B[0] - B.back() + i - (rs - i))); } } cout << ans << endl; }