#include <bits/stdc++.h>
using namespace std;
const double EPS = 1e-9;
const double PI = acos(-1.0);
int N, a, b, h[16];
int ret, lg[16], rlg[16];
bool dfs(int id, int sum) {
  if (sum >= ret) return false;
  if (id == N - 2) {
    int lower = (int)ceil((double)(h[N - 1] + 1) / b - EPS);
    int rhs2 = h[N - 2] + 1, rhs3 = h[N - 3] + 1;
    if (N - 2 >= 1) {
      rhs2 -= b * lg[N - 3];
      rhs3 -= a * lg[N - 3];
    }
    if (N - 2 >= 2) {
      rhs3 -= b * lg[N - 4];
    }
    lower = max(lower, (int)ceil((double)rhs2 / a - EPS));
    lower = max(lower, (int)ceil((double)rhs3 / b - EPS));
    lg[N - 2] = lower;
    sum += lower;
    if (ret > sum) {
      ret = sum;
      memcpy(rlg, lg, sizeof(lg));
    }
    return true;
  }
  int rhs = h[id - 1] + 1;
  if (id >= 2) rhs -= a * lg[id - 1];
  if (id >= 3) rhs -= b * lg[id - 2];
  int lower = max(0, (int)ceil((double)rhs / b - EPS));
  for (int j = lower;; ++j) {
    lg[id] = j;
    if (!dfs(id + 1, sum + j)) break;
  }
  return true;
}
int main() {
  scanf("%d%d%d", &N, &a, &b);
  for (int j = 0; j < (int)(N); ++j) scanf("%d", &h[j]);
  ret = 9999999;
  dfs(1, 0);
  printf("%d\n", ret);
  for (int j = (1); j <= (int)(N - 2); ++j)
    for (int k = 0; k < (int)(rlg[j]); ++k) printf("%d ", j + 1);
  puts("");
}
