#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-8;
long long cost[100007];
long long dpx[100007][2], dpy[100007][2];
int n;
int main() {
  ios::sync_with_stdio(false);
  cin >> n;
  for (int i = 0; i < n - 1; i++) cin >> cost[i];
  dpx[0][0] = dpx[0][1] = 0;
  for (int i = 1; i < n; ++i) {
    if (!cost[i - 1]) {
      dpx[i][0] = dpx[i][1] = 0;
      continue;
    }
    if (cost[i - 1] & 1)
      dpx[i][0] = cost[i - 1] + max(dpx[i - 1][0], dpx[i - 1][1]);
    else
      dpx[i][0] = cost[i - 1] - 1 + max(dpx[i - 1][0], dpx[i - 1][1]);
    if (!(cost[i - 1] & 1))
      dpx[i][1] = cost[i - 1] + dpx[i - 1][1];
    else {
      if (cost[i - 1] == 1)
        dpx[i][1] = 0;
      else
        dpx[i][1] = cost[i - 1] - 1 + dpx[i - 1][1];
    }
  }
  dpy[n - 1][0] = dpy[n - 1][1] = 0;
  for (int i = n - 2; i >= 0; --i) {
    if (!cost[i]) {
      dpy[i][0] = dpy[i][1] = 0;
      continue;
    }
    if (cost[i] & 1)
      dpy[i][0] = cost[i] + max(dpy[i + 1][0], dpy[i + 1][1]);
    else
      dpy[i][0] = cost[i] - 1 + max(dpy[i + 1][0], dpy[i + 1][1]);
    if (!(cost[i] & 1))
      dpy[i][1] = cost[i] + dpy[i + 1][1];
    else {
      if (cost[i] == 1)
        dpy[i][1] = 0;
      else
        dpy[i][1] = cost[i] - 1 + dpy[i + 1][1];
    }
  }
  long long ans = 0;
  for (int i = 0; i < n; i++)
    ans = max(ans, max(dpx[i][0] + dpy[i][1], dpx[i][1] + dpy[i][0]));
  cout << ans << endl;
  return 0;
}
