#include <bits/stdc++.h>
using namespace std;
int n, a, b, h[20], ans = 10000, an[20], no[20];
void dfs(int now, int res) {
  if (now == n) {
    if (res < ans) {
      ans = res;
      for (int i = 2; i < n; i++) an[i] = no[i];
    }
    return;
  }
  if (now == n - 1) {
    int l = h[n] / b + 1, r = h[n - 1] / a + 1, t = h[n - 2] / b + 1;
    no[n - 1] = max(max(0, l), max(r, t));
    dfs(now + 1, res + max(max(0, l), max(r, t)));
  } else if (now == 2) {
    int l = h[1] / b, r = h[2] / a, t = h[3] / b;
    if (h[1] >= 0) l++;
    if (h[2] >= 0) r++;
    if (h[3] >= 0) t++;
    l = max(0, l);
    r = max(l, max(r, t));
    for (int i = l; i <= r; i++) {
      h[2] -= i * a;
      h[3] -= i * b;
      no[2] = i;
      dfs(now + 1, res + i);
      h[2] += i * a;
      h[3] += i * b;
    }
  } else {
    int l = h[now - 1] / b, r = h[now] / a, t = h[now + 1] / b;
    if (h[now - 1] >= 0) l++;
    if (h[now] >= 0) r++;
    if (h[now + 1] >= 0) t++;
    l = max(0, l);
    r = max(l, max(r, t));
    for (int i = l; i <= r; i++) {
      h[now] -= i * a;
      h[now + 1] -= i * b;
      no[now] = i;
      dfs(now + 1, res + i);
      h[now] += i * a;
      h[now + 1] += i * b;
    }
  }
}
int main() {
  scanf("%d%d%d", &n, &a, &b);
  for (int i = 1; i <= n; i++) scanf("%d", &h[i]);
  dfs(2, 0);
  printf("%d\n", ans);
  for (int i = 2; i < n; i++)
    for (int j = 1; j <= an[i]; j++) printf("%d ", i);
  return 0;
}
