#include <bits/stdc++.h>
using namespace std;
int f[20][20][20], p[20][20][20], q[20][20][20];
int n, a, b, h[20];
void print(int now, int x, int y) {
  if (now == 2) return;
  print(now - 1, p[now][x][y], q[now][x][y]);
  for (int i = 0; i < f[now][x][y] - f[now - 1][p[now][x][y]][q[now][x][y]];
       i++)
    printf("%d ", now - 1);
}
int main() {
  scanf("%d%d%d", &n, &a, &b);
  for (int i = 1; i <= n; i++) scanf("%d", &h[i]), h[i]++;
  for (int i = 0; i <= n; i++)
    for (int j = 0; j <= 16; j++)
      for (int k = 0; k <= 16; k++) f[i][j][k] = 0x3f3f3f3f;
  f[2][h[1]][h[2]] = 0;
  for (int i = 2; i < n; i++)
    for (int j = 0; j <= h[i - 1]; j++)
      for (int k = 0; k <= h[i]; k++) {
        if (f[i][j][k] == 0x3f3f3f3f) continue;
        int mins = (b + j - 1) / b,
            maxs = max(mins, max((k + a - 1) / a, (h[i + 1] + b - 1) / b));
        for (int hit = mins; hit <= maxs; hit++)
          if (f[i + 1][max(0, k - a * hit)][max(0, h[i + 1] - b * hit)] >
              f[i][j][k] + hit) {
            f[i + 1][max(0, k - a * hit)][max(0, h[i + 1] - b * hit)] =
                f[i][j][k] + hit;
            p[i + 1][max(0, k - a * hit)][max(0, h[i + 1] - b * hit)] = j;
            q[i + 1][max(0, k - a * hit)][max(0, h[i + 1] - b * hit)] = k;
          }
      }
  printf("%d\n", f[n][0][0]);
  print(n, 0, 0);
}
