#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e1 + 5, maxm = 15 * 10 + 5;
int n, a, b, h[maxn], sum, ans;
int pos[maxm], val[maxm];
int rad() {
  int ret = 0, f = 1;
  char ch = getchar();
  while (ch < '0' || ch > '9') {
    if (ch == '-') f = -1;
    ch = getchar();
  }
  while (ch >= '0' && ch <= '9') ret = ret * 10 + ch - '0', ch = getchar();
  return ret * f;
}
void check() {
  int yu = max(h[n - 1] / a + (h[n - 1] >= 0), h[n] / b + (h[n] >= 0));
  for (int i = 1; i <= yu; ++i) pos[++sum] = n - 1;
  if (ans > sum) {
    for (int i = 1; i <= sum; ++i) val[i] = pos[i];
    ans = sum;
  }
  sum -= yu;
}
void dfs(int now) {
  if (now > n - 1) {
    check();
    return;
  }
  if (h[now - 1] < 0) dfs(now + 1);
  int i = 1, lst = sum, A = h[now - 1], B = h[now], C = h[now + 1];
  while (true) {
    h[now] -= a;
    h[now - 1] -= b;
    h[now + 1] -= b;
    pos[++sum] = now;
    if (h[now - 1] < 0) dfs(now + 1);
    if ((h[now - 1] < 0 && h[now] < 0) || sum >= ans) {
      sum = lst;
      h[now - 1] = A, h[now] = B, h[now + 1] = C;
      break;
    }
  }
}
int main() {
  n = rad();
  a = rad();
  b = rad();
  for (int i = 1; i <= n; ++i) h[i] = rad();
  ans = 1e9;
  sum = 0;
  dfs(2);
  printf("%d\n", ans);
  for (int i = 1; i < ans; ++i) printf("%d ", val[i]);
  printf("%d\n", val[ans]);
  return 0;
}
