#include <bits/stdc++.h>
using namespace std;
int dp[20][20][20];
int from[20][20][20];
int v[20];
int a, b, n;
int main() {
  cin >> n >> a >> b;
  for (int i(0); i < n; i++) {
    cin >> v[i];
    v[i]++;
  }
  n--;
  for (int i(0); i <= 16; i++)
    for (int j(0); j <= 16; j++)
      for (int k(0); k <= 16; k++) dp[i][j][k] = (1 << 30);
  for (int i(0); i <= 16; i++)
    for (int j(0); j <= 16; j++)
      if (i * a + j * b >= v[1] && i * b >= v[0]) dp[1][i][j] = i + j;
  for (int i(1); i < n - 1; i++) {
    for (int j(0); j <= 16; j++) {
      for (int k(0); k <= 16; k++) {
        if (dp[i][j][k] == (1 << 30)) continue;
        for (int altcv(0); altcv <= 16; altcv++) {
          if (k * a + (j + altcv) * b >= v[i + 1] &&
              dp[i + 1][k][altcv] > dp[i][j][k] + altcv) {
            dp[i + 1][k][altcv] = dp[i][j][k] + altcv;
            from[i + 1][k][altcv] = j;
          }
        }
      }
    }
  }
  int bestj, bestk, bestans(1e9);
  for (int i(0); i <= 16; i++)
    if (dp[n - 1][i][0] < bestans && i * b >= v[n])
      bestj = i, bestk = 0, bestans = dp[n - 1][i][0];
  vector<int> hits(n + 2);
  for (int i(n - 1); i >= 1; i--) {
    hits[i] = bestj;
    int j = bestj;
    bestj = from[i][bestj][bestk];
    bestk = j;
  }
  cout << bestans << '\n';
  for (int i(1); i <= n; i++)
    while (hits[i]--) cout << i + 1 << ' ';
  cout << '\n';
  return 0;
}
