#include <bits/stdc++.h>
using namespace std;
template <class T>
inline void read(T &k) {
  k = 0;
  int flag = 1;
  char c = getchar();
  while (c < '0' || c > '9') {
    if (c == '-') flag = -1;
    c = getchar();
  }
  while (c >= '0' && c <= '9') {
    k = k * 10 + c - '0';
    c = getchar();
  }
  k *= flag;
}
const int N = 11;
int n, m, k, s, t, k1, k2, p, a, b;
int f[N][16][16], h[N], g[N][16][16], v[N][16][16];
int main() {
  read(n);
  read(a);
  read(b);
  for (int i = 1; i <= n; ++i) {
    read(h[i]);
    h[i]++;
  }
  if (h[1] % b == 0)
    k1 = h[1] / b;
  else
    k1 = h[1] / b + 1;
  h[2] -= k1 * a;
  h[3] -= k1 * b;
  for (int i = 1; i <= n; ++i) h[i] = max(h[i], 0);
  if (h[n] % b == 0)
    k2 = h[n] / b;
  else
    k2 = h[n] / b + 1;
  h[n - 1] -= k2 * a;
  h[n - 2] -= k2 * b;
  for (int i = 1; i <= n; ++i) h[i] = max(h[i], 0);
  h[1] = h[n] = 0;
  memset(f, 0x3f, sizeof(f));
  f[1][0][0] = 0;
  for (int i = 1; i <= n - 2; ++i)
    for (int j = 0; j <= 15; ++j)
      for (int k = 0; k <= 15; ++k)
        if (f[i][j][k] < 0x3f3f3f3f)
          for (int l = 0; l <= 15; ++l)
            if ((j + l) * b + k * a >= h[i] &&
                f[i + 1][k][l] > f[i][j][k] + l) {
              f[i + 1][k][l] = f[i][j][k] + l;
              g[i + 1][k][l] = j;
            }
  int ans = 0x3f3f3f3f;
  for (int i = 0; i <= 15; ++i)
    for (int j = 0; j <= 15; ++j)
      if (i * b + j * a >= h[n - 1] && ans > f[n - 1][i][j]) {
        ans = f[n - 1][i][j];
        s = i;
        t = j;
      }
  cout << ans + k1 + k2 << endl;
  for (int i = 1; i <= k1; ++i) cout << 2 << ' ';
  for (int i = 1; i <= k2; ++i) cout << n - 1 << ' ';
  k = n - 1;
  while (k != 1) {
    for (int i = 1; i <= t; ++i) cout << k << ' ';
    p = g[k][s][t];
    t = s;
    s = p;
    --k;
  }
}
