#include <bits/stdc++.h>
using namespace std;
template <class T>
void dbs(string str, T t) {
  cerr << str << " : " << t << "\n";
}
template <class T, class... S>
void dbs(string str, T t, S... s) {
  long long idx = str.find(',');
  cerr << str.substr(0, idx) << " : " << t << ", ";
  dbs(str.substr(idx + 1), s...);
}
template <class T>
void prc(T a, T b) {
  cerr << "[";
  for (T i = a; i != b; ++i) {
    if (i != a) cerr << ", ";
    cerr << *i;
  }
  cerr << "]\n";
}
template <class T>
void prall(T a) {
  prc(a.begin(), a.end());
}
const int inf = 1000 * 1000 * 1000 + 9;
const long long infl = 1ll * inf * inf;
int mod = 1000 * 1000 * 1000 + 7;
mt19937_64 mt(chrono::steady_clock::now().time_since_epoch().count());
long long randrange(long long l, long long r) { return l + mt() % (r - l + 1); }
int h[15];
int dp[12][800][800];
int off = 400;
int n, a, b;
int kill(int i, int prevrem, int currem) {
  if (dp[i][prevrem + off][currem + off] != -1)
    return dp[i][prevrem + off][currem + off];
  int shots = inf;
  if (i == n) {
    if (prevrem < 0 && currem < 0) shots = 0;
  } else {
    for (int j = 0; j <= 16; j++) {
      if (prevrem - b * j >= 0) continue;
      shots = min(shots, kill(i + 1, currem - a * j, h[i + 1] - b * j) + j);
    }
  }
  return dp[i][prevrem + off][currem + off] = shots;
}
void printsol(int i, int prevrem, int currem) {
  if (i == n) {
    cout << '\n';
  } else {
    for (int j = 0; j <= 16; j++) {
      if (prevrem - b * j >= 0) continue;
      if (dp[i][prevrem + off][currem + off] ==
          j + dp[i + 1][currem - a * j + off][h[i + 1] - b * j + off]) {
        for (int k = 0; k < j; k++) cout << i << " ";
        printsol(i + 1, currem - a * j, h[i + 1] - b * j);
        break;
      }
    }
  }
}
void solve() {
  cin >> n >> a >> b;
  memset(dp, -1, sizeof(dp));
  for (int i = 1; i <= n; i++) {
    cin >> h[i];
  }
  int t = kill(2, h[1], h[2]);
  cout << t << '\n';
  printsol(2, h[1], h[2]);
}
int main() {
  ios_base::sync_with_stdio(NULL);
  cin.tie(NULL);
  int testcases = 1;
  cout << fixed << setprecision(13);
  int cs = 1;
  while (testcases--) {
    cs++;
    solve();
  }
}
