#include <bits/stdc++.h>
using namespace std;
int n, a, b, h[15], side = 0, dsh[15], cent = 52;
vector<int> sshot, cshot;
void recur(int now, int tot) {
  if (now == n - 1) {
    int ok = 1;
    for (int i = 1; i < n - 1; i++)
      if (dsh[i] * a + dsh[i - 1] * b + dsh[i + 1] * b <= h[i]) {
        ok = 0;
        break;
      }
    if (ok == 1 && tot < cent) {
      cent = tot;
      cshot.clear();
      for (int i = 1; i < n - 1; i++)
        for (int j = 0; j < dsh[i]; j++) cshot.push_back(i);
    }
    return;
  }
  if (tot >= cent) return;
  for (int i = 0; i <= 8; i++) {
    dsh[now] = i;
    recur(now + 1, tot + i);
  }
}
int main() {
  scanf("%d%d%d", &n, &a, &b);
  for (int i = 0; i < n; i++) {
    scanf("%d", &h[i]);
  }
  while (h[0] >= 0) {
    h[0] -= b;
    h[2] -= b;
    h[1] -= a;
    side++;
    sshot.push_back(1);
  }
  while (h[n - 1] >= 0) {
    h[n - 1] -= b;
    h[n - 3] -= b;
    h[n - 2] -= a;
    side++;
    sshot.push_back(n - 2);
  }
  memset(dsh, 0, sizeof(dsh));
  recur(1, 0);
  printf("%d\n", cent + side);
  printf("%d", sshot[0] + 1);
  for (int i = 1; i < sshot.size(); i++) printf(" %d", sshot[i] + 1);
  for (int i = 0; i < cshot.size(); i++) printf(" %d", cshot[i] + 1);
  printf("\n");
}
