#include <bits/stdc++.h>
using namespace std;
int arr[500010];
int d1[500010];
int d2[500010];
int main() {
  int n;
  cin >> n;
  for (int i = (0); i < (int)(n); i++) cin >> arr[i];
  int last2left = 0;
  for (int i = (1); i < (int)(n - 1); i++) {
    if (arr[i] == arr[i - 1]) {
      last2left = i;
      d1[i] = i;
    } else {
      d1[i] = last2left;
    }
  }
  last2left = n - 1;
  for (int i = (n - 1 - 1); i >= (int)(1); i--) {
    if (arr[i] == arr[i + 1]) {
      last2left = i;
      d2[i] = i;
    } else {
      d2[i] = last2left;
    }
  }
  int res = 0;
  for (int i = (1); i < (int)(n - 1); i++)
    res = max(res, min(i - d1[i], d2[i] - i));
  cout << res << endl;
  cout << arr[0] << " ";
  for (int i = (1); i < (int)(n - 1); i++)
    cout << ((i - d1[i] < d2[i] - i) ? arr[d1[i]] : arr[d2[i]]) << " ";
  cout << arr[n - 1] << endl;
}
