#include <algorithm>
#include <cstdio>
#include <iostream>
using namespace std;
const int N = 1145;
int n;
long long c;
long long nums[N * 2];
long long dp[N];
long long cal (int i, int j) {
if (i > n) {
i -= n;
}
if (j > n) {
j -= n;
}
long long len = abs (nums[j] - nums[i]);
len = min (len, c - len);
return len;
}
int main () {
freopen ("Cows.in", "r", stdin);
freopen ("Cows.out", "w", stdout);
// cin >> n >> c;
scanf ("%d %d", &n, &c);
for (int i = 1; i <= n; i++) {
// cin >> nums[i];
scanf ("%lld", &nums[i]);
nums[i + n] = nums[i] + c;
}
for (int i = 1; i <= n; i++) {
for (int j = i + 1; j <= n; j++) {
int l = j + 1;
int r = i + n - 1;
int num = 1;
long long lim = cal (i, j);
for (int k = i + 1; k < j; k++) {
if (l <= r) {
if (l <= r && cal (k, l) < lim) {
while (l < r && cal (k, l) < lim && cal (k, l + 1) > cal (k, l)) {
l++;
}
}
if (l <= r && cal (k, l) >= lim) {
num++;
l++;
}
}
}
// cout << i << ' ' << j << ' ' << num << endl;
dp[num] = max (dp[num], cal (i, j));
}
}
for (int i = n / 2; i >= 1; i--) {
dp[i] = max (dp[i], dp[i + 1]);
}
for (int i = 1; i <= n / 2; i++) {
// cout << dp[i] << ' ';
printf ("%d ", dp[i]);
}
return 0;
}