#include <bits/stdc++.h>
using namespace std;
int n, a[100005], res = 1e9, A, B, x[100005], kq[100005], kq1[100005], dem = 0,
                  e[100005];
void no(int val) {
  if (a[n] >= 0 || a[n - 1] >= 0 || res <= val) return;
  res = val;
  for (int i = 2; i <= n - 1; i++) kq[i] = x[i];
  return;
}
void xuli(int i, int val) {
  if (val >= res) return;
  if (i == 2 || i == n - 1 || 1 == 1) {
    for (int j = 0; j <= 16; j++) {
      bool ok = true;
      x[i] = j;
      a[i - 1] -= B * j;
      a[i] -= A * j;
      a[i + 1] -= B * j;
      if (a[i - 1] >= 0) ok = false;
      if (ok == true) {
        if (i == n - 1)
          no(val + j);
        else
          xuli(i + 1, val + j);
      }
      a[i - 1] += B * j;
      a[i] += A * j;
      a[i + 1] += B * j;
    }
  } else {
    int tg = max(e[i] / A + 1, max(e[i - 1] / B + 1, e[i + 1] / B + 1));
    for (int j = 0; j <= tg; j++) {
      bool ok = true;
      x[i] = j;
      a[i - 1] -= B * j;
      a[i] -= A * j;
      a[i + 1] -= B * j;
      if (a[i - 1] >= 0) ok = false;
      if (ok == true) {
        if (i == n - 1)
          no(val + j);
        else
          xuli(i + 1, val + j);
      }
      a[i - 1] += B * j;
      a[i] += A * j;
      a[i + 1] += B * j;
    }
  }
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> n >> A >> B;
  for (int i = 1; i <= n; i++) cin >> a[i], e[i] = a[i];
  xuli(2, 0);
  cout << res << '\n';
  for (int i = 2; i <= n - 1; i++)
    for (int j = 1; j <= kq[i]; j++) kq1[++dem] = i;
  for (int i = 1; i <= dem; i++) cout << kq1[i] << " ";
  return 0;
}
