#include <bits/stdc++.h>
using namespace std;
const int maxn = 15;
int h[maxn], n, a, b;
vector<int> G, ans;
void dfs(int ith, bool ok) {
  if (ith == n && ok == 0) {
    if (G.size() < ans.size()) ans = G;
    return;
  }
  int size = 0;
  while (ok && h[ith - 1] >= 0) {
    h[ith - 1] -= b;
    h[ith] -= a;
    h[ith + 1] -= b;
    G.push_back(ith);
    size++;
  }
  while (h[ith] >= 0) {
    dfs(ith + 1, 1);
    h[ith - 1] -= b;
    h[ith] -= a;
    h[ith + 1] -= b;
    G.push_back(ith);
    size++;
  }
  dfs(ith + 1, 0);
  h[ith - 1] += size * b;
  h[ith] += size * a;
  h[ith + 1] += size * b;
  while (size--) G.erase(G.end() - 1);
}
int main() {
  scanf("%d%d%d", &n, &a, &b);
  for (int i = 1; i <= n; i++) scanf("%d", &h[i]);
  while (h[1] >= 0) {
    h[1] -= b;
    h[2] -= a;
    h[3] -= b;
    G.push_back(2);
  }
  while (h[n] >= 0) {
    h[n - 2] -= b;
    h[n - 1] -= a;
    h[n] -= b;
    G.push_back(n - 1);
  }
  ans = G;
  for (int i = 1; i <= 100; i++) ans.push_back(i);
  dfs(2, 0);
  printf("%d\n", ans.size());
  for (int i = 0; i < ans.size(); i++) printf("%d ", ans[i]);
  return 0;
}
