#include <bits/stdc++.h>
using namespace std;
int n, h[22], click[22], a, b, ans, gas[22];
vector<int> v;
bool ok() {
  for (int i = 2; i < n; i++) {
    if (h[i] >= click[i - 1] * b + click[i] * a + click[i + 1] * b) return 0;
  }
  return 1;
}
int main() {
  scanf("%d %d %d", &n, &a, &b);
  for (int i = 1; i <= n; i++) scanf("%d", &h[i]);
  if (n == 3) {
    ans = max(h[1] / b, max(h[2] / a, h[3] / b)) + 1;
    printf("%d\n", ans);
    for (int i = 1; i < ans; i++) printf("2 ");
    puts("2");
  } else {
    int x = h[1] / b + 1, y = h[n] / b + 1;
    gas[2] = x;
    gas[n - 1] = y;
    h[2] -= x * a;
    h[n - 1] -= y * a;
    h[3] -= x * b;
    h[n - 2] -= y * b;
    int M = 1;
    for (int i = 0; i < n - 2; i++) M *= 9;
    int mn = M, Ans = 0;
    for (int i = 0; i < M; i++) {
      int I = i, rlt = 0;
      for (int j = 2; j <= n - 1; j++)
        click[j] = I % 9, I /= 9, rlt += click[j];
      if (rlt < mn && ok()) mn = rlt, Ans = i;
    }
    for (int j = 2; j <= n - 1; j++) gas[j] += Ans % 9, Ans /= 9;
    printf("%d\n", mn + x + y);
    for (int j = 2; j <= n - 1; j++) {
      for (int k = 0; k < gas[j]; k++) v.push_back(j);
    }
    for (int i = 0; i < v.size() - 1; i++) printf("%d ", v[i]);
    printf("%d\n", v[v.size() - 1]);
  }
  return 0;
}
