#include <bits/stdc++.h>
using namespace std;
int dp[12][16][16][16], pre[12][4096];
vector<int> v;
int main() {
  int n, a, b, i, h[12], tp, ans, tq;
  bool flg = false;
  scanf("%d%d%d", &n, &a, &b);
  for (i = 1; i <= n; i++) scanf("%d", &h[i]);
  ans = tp = h[1] / b + 1;
  for (i = 0; i < tp; i++) v.push_back(2);
  h[1] -= tp * b;
  h[2] -= tp * a;
  h[3] -= tp * b;
  if (h[n] > 0) {
    tp = h[n] / b + 1;
    h[n] -= tp * b;
    h[n - 1] -= tp * a;
    h[n - 2] -= tp * b;
    ans += tp;
    for (i = 0; i < tp; i++) v.push_back(n - 1);
  }
  memset(dp, 0x10, sizeof(dp));
  for (int j = 0; j <= 15; j++)
    for (int k = 0; k <= 15; k++)
      for (int l = 0; l <= 15; l++) dp[1][j][k][l] = j + k + l;
  tp = 0xffff;
  for (i = 2; i <= n; i++) {
    if (h[i] >= 0) flg = true;
    for (int j = 0; j <= 15; j++)
      for (int k = 0; k <= 15; k++)
        for (int l = 0; l <= 15; l++) {
          if (j * b + k * a + l * b > h[i - 1]) {
            for (int m = 0; m <= 15; m++) {
              if (dp[i][j][k][l] > dp[i - 1][m][j][k] + l) {
                dp[i][j][k][l] = dp[i - 1][m][j][k] + l;
                pre[i][j * 256 + k * 16 + l] = m * 256 + j * 16 + k;
              }
              if (i == n)
                if (tp > dp[i][j][k][l]) {
                  tq = m * 256 + j * 16 + k;
                  tp = dp[i][j][k][l];
                }
            }
          }
        }
  }
  if (flg) {
    i = n;
    while (i >= 2) {
      tp = tq % 16;
      for (int j = 0; j < tp; j++) v.push_back(i - 1);
      tq = pre[--i][tq];
    }
  }
  printf("%d\n", v.size());
  printf("%d", v[0]);
  for (i = 1; i < v.size(); i++) printf(" %d", v[i]);
  return 0;
}
