#include <bits/stdc++.h>
using namespace std;
long long int powmod(long long int a, int b, int n) {
  long long int rm = 1;
  while (b) {
    if (b % 2) {
      rm = (rm * a) % n;
    }
    a = (a * a) % n;
    b /= 2;
  }
  return rm;
}
int dp[20][20][20], n, a, b, h[20], track[20][20][20][5];
void go(int ind, int health, int hits) {
  if (ind > n) return;
  for (int i = 1; i <= hits; ++i) cout << ind << " ";
  go(ind + 1, track[ind][health][hits][1], track[ind][health][hits][2]);
}
int main() {
  cin >> n >> a >> b;
  for (int i = int(1); i <= (int)n; i++) {
    cin >> h[i];
    h[i]++;
  }
  for (int w = 1; w <= n; ++w)
    for (int i = 0; i <= 16; ++i)
      for (int j = 0; j <= 16; ++j) dp[w][i][j] = 1e9;
  dp[n][h[n]][0] = 0;
  for (int i = n - 1; i >= 2; i--) {
    for (int health = 0; health <= 16; ++health) {
      for (int hitsp = 0; hitsp <= 16; ++hitsp) {
        for (int hitsnow = 0; hitsnow <= 16; ++hitsnow) {
          if (hitsnow * b >= health) {
            if (dp[i][max(0, h[i] - hitsnow * a - b * hitsp)][hitsnow] >
                hitsnow + dp[i + 1][health][hitsp]) {
              dp[i][max(0, h[i] - hitsnow * a - b * hitsp)][hitsnow] =
                  min(dp[i][max(0, h[i] - hitsnow * a - b * hitsp)][hitsnow],
                      hitsnow + dp[i + 1][health][hitsp]);
              track[i][max(0, h[i] - hitsnow * a - b * hitsp)][hitsnow][0] =
                  i + 1;
              track[i][max(0, h[i] - hitsnow * a - b * hitsp)][hitsnow][1] =
                  health;
              track[i][max(0, h[i] - hitsnow * a - b * hitsp)][hitsnow][2] =
                  hitsp;
            }
          }
        }
      }
    }
  }
  int hhit, hhealth = 0;
  int ans = 2e9;
  for (int hits = 0; hits <= 16; ++hits) {
    if (hits * b >= h[1]) {
      if (ans > dp[2][0][hits]) {
        ans = min(ans, dp[2][0][hits]);
        hhit = hits;
      }
    }
  }
  cout << ans << endl;
  go(2, hhealth, hhit);
  return 0;
}
