#include <bits/stdc++.h>
int n, a, b, h[20];
int dp[20][20][20], g[20][20][20];
inline int min(int x, int y) { return x < y ? x : y; }
inline int max(int x, int y) { return x > y ? x : y; }
int main() {
  scanf("%d%d%d", &n, &a, &b);
  for (int i = 1; i <= n; i++) scanf("%d", &h[i]), h[i]++;
  memset(dp, 0x3f, sizeof(dp));
  for (int i = 0; i <= 15; i++)
    if (b * i >= h[1]) dp[2][0][i] = i;
  for (int i = 1; i <= n; i++)
    for (int j = 0; j <= 15; j++)
      for (int k = 0; k <= 15; k++)
        for (int l = 0; l <= 15; l++)
          if (a * j + b * (l + k) >= h[i - 1])
            if (dp[i - 1][l][j] + k < dp[i][j][k])
              dp[i][j][k] = dp[i - 1][l][j] + k, g[i][j][k] = l;
  int ans = 0;
  for (int i = 1; i <= 15; i++)
    if (dp[n][i][0] + max(0, (h[n] - i * b + b - 1) / b) <
        dp[n][ans][0] + max(0, (h[n] - ans * b + b - 1) / b))
      ans = i;
  printf("%d\n", dp[n][ans][0] + max(0, (h[n] - ans * b + b - 1) / b));
  for (int t = 1; t <= max(0, (h[n] - ans * b + b - 1) / b); t++)
    printf("%d ", n - 1);
  for (int i = n, j = ans, k = 0; i >= 2;) {
    for (int t = 1; t <= k; t++) printf("%d ", i);
    int l = g[i][j][k];
    i--, k = j, j = l;
  }
  return 0;
}
