#include <bits/stdc++.h>
using namespace std;
vector<long long> v, mq;
long long n, a, b, sz[15], zx = 999999999;
void dfs(long long wz, long long sl) {
  if (sl >= zx) {
    return;
  }
  if (wz == n) {
    if (sz[n] < 0) {
      zx = sl;
      v = mq;
    }
    return;
  }
  long long sd = max(sz[wz - 1] / b, max(sz[wz] / a, sz[wz + 1] / b)) + 1;
  for (int i = 0; i <= sd; i++) {
    if (sz[wz - 1] < i * b) {
      sz[wz - 1] -= i * b;
      sz[wz] -= i * a;
      sz[wz + 1] -= i * b;
      for (int j = 1; j <= i; j++) {
        mq.push_back(wz);
      }
      dfs(wz + 1, sl + i);
      sz[wz - 1] += i * b;
      sz[wz] += i * a;
      sz[wz + 1] += i * b;
      for (int j = 1; j <= i; j++) {
        mq.pop_back();
      }
    }
  }
}
int main() {
  scanf("%lld%lld%lld", &n, &a, &b);
  for (int i = 1; i <= n; i++) {
    scanf("%lld", &sz[i]);
  }
  dfs(2, 0);
  cout << zx << endl;
  for (int i = 0; i < zx; i++) {
    printf("%lld ", v[i]);
  }
  return 0;
}
