#include <bits/stdc++.h>
using namespace std;
int h[20];
int dp[20][20][20];
int cntL[20][20][20], cntM[20][20][20];
vector<int> v;
int main() {
  int i, j, k, n, a, b, l, m;
  cin >> n >> a >> b;
  for (i = 0; i < n; i++) cin >> h[i];
  int cnt = 0;
  while (h[0] >= 0) {
    h[0] -= b;
    h[1] -= a;
    h[2] -= b;
    v.push_back(2);
    cnt++;
  }
  while (h[n - 1] >= 0) {
    h[n - 1] -= b;
    h[n - 2] -= a;
    h[n - 3] -= b;
    v.push_back(n - 1);
    cnt++;
  }
  for (i = 1; i <= n - 2; i++) {
    if (h[i] >= 0) h[i]++;
  }
  for (i = 0; i <= n - 2; i++)
    for (j = 0; j <= 16; j++)
      for (k = 0; k <= 16; k++) dp[i][j][k] = INT_MAX;
  dp[0][0][0] = 0;
  for (i = 1; i <= n - 2; i++)
    for (j = 0; j <= 16; j++) {
      for (l = 0; l <= 16; l++)
        for (m = 0; m <= 16; m++) {
          if (dp[i - 1][l][m] != INT_MAX && l - j * b <= 0) {
            int lft = max(0, h[i] - m * b - a * j);
            if (dp[i][lft][j] > dp[i - 1][l][m] + j) {
              dp[i][lft][j] = dp[i - 1][l][m] + j;
              cntL[i][lft][j] = l;
              cntM[i][lft][j] = m;
            }
          }
        }
    }
  int ans = INT_MAX;
  int idxL = -1, idxM = -1;
  for (i = 0; i <= 16; i++) {
    if (ans > dp[n - 2][0][i]) {
      ans = dp[n - 2][0][i];
      idxL = 0;
      idxM = i;
    }
  }
  for (i = n - 2; i > 0; i--) {
    for (j = 0; j < idxM; j++) {
      v.push_back(i + 1);
    }
    int tIdxL = cntL[i][idxL][idxM];
    int tIdxM = cntM[i][idxL][idxM];
    idxL = tIdxL;
    idxM = tIdxM;
  }
  cout << ans + cnt << endl;
  for (i = 0; i < v.size(); i++) cout << v[i] << " ";
}
