#include <bits/stdc++.h>
using namespace std;
vector<int> q, v;
long long n, a, b, m[50], ans = 99999999, aa[50];
void dfs(long long idx, long long sum) {
  if (sum >= ans) return;
  if (idx == n) {
    if (m[n] < 0) {
      ans = min(ans, sum);
      v = q;
    }
    return;
  }
  long long t = max(m[idx - 1] / b, max((m[idx]) / a, m[idx + 1] / b)) + 1;
  for (long long i = 0; i <= t; i++) {
    if (m[idx - 1] >= b * i) continue;
    m[idx] -= a * i;
    m[idx - 1] -= b * i;
    m[idx + 1] -= b * i;
    for (int j = 1; j <= i; j++) {
      q.push_back(idx);
    }
    dfs(idx + 1, sum + i);
    for (int j = 1; j <= i; j++) {
      q.pop_back();
    }
    m[idx] += a * i;
    m[idx - 1] += b * i;
    m[idx + 1] += b * i;
  }
}
int main() {
  cin >> n >> a >> b;
  for (int i = 1; i <= n; i++) {
    cin >> m[i];
  }
  dfs(2, 0);
  cout << ans << endl;
  for (int i = 0; i < ans; i++) {
    cout << v[i] << " ";
  }
  return 0;
}
