#include <bits/stdc++.h>
using namespace std;
int maxWord, ns, a, b, mv;
int health[20], dp[11][20][20][20][11], mov[200];
int rec(int id, int v1, int v2, int v3, int kill) {
  if (kill == ns) return dp[id][v1][v2][v3][kill] = 0;
  if (id >= ns - 1) return 123456;
  if (dp[id][v1][v2][v3][kill] != -1) return dp[id][v1][v2][v3][kill];
  int an1 = 12345, an2 = 12345, k = 0, a1 = 17, a2 = 17, a3 = 17;
  if (v1 != 17 || v2 != 17 || v3 != 17) {
    if (v2 != 17) {
      a2 = v2 - a;
      if (a2 < 0) {
        a2 = 17;
        k++;
      }
    }
    if (v1 != 17) {
      a1 = v1 - b;
      if (a1 < 0) {
        a1 = 17;
        k++;
      }
    }
    if (v3 != 17) {
      a3 = v3 - b;
      if (a3 < 0) {
        a3 = 17;
        k++;
      }
    }
    an1 = 1 + rec(id, a1, a2, a3, kill + k);
  }
  an2 = rec(id + 1, v2, v3, health[id + 2], kill);
  return dp[id][v1][v2][v3][kill] = min(an1, an2);
}
void call(int id, int v1, int v2, int v3, int kill, int d) {
  if (kill == ns) return;
  if (id >= ns - 1) return;
  int an1 = 12345, an2 = 12345, k = 0, a1 = 17, a2 = 17, a3 = 17, f = 0;
  if (v1 != 17 || v2 != 17 || v3 != 17) {
    if (v2 != 17) {
      a2 = v2 - a;
      if (a2 < 0) {
        a2 = 17;
        k++;
      }
    }
    if (v1 != 17) {
      a1 = v1 - b;
      if (a1 < 0) {
        a1 = 17;
        k++;
      }
    }
    if (v3 != 17) {
      a3 = v3 - b;
      if (a3 < 0) {
        a3 = 17;
        k++;
      }
    }
    an1 = 1 + dp[id][a1][a2][a3][kill + k];
    f = 1;
  }
  an2 = dp[id + 1][v2][v3][health[id + 2]][kill];
  if (f) {
    if (an1 == d) {
      cout << id + 1 << " ";
      call(id, a1, a2, a3, kill + k, d - 1);
    } else {
      call(id + 1, v2, v3, health[id + 2], kill, d);
    }
  } else {
    call(id + 1, v2, v3, health[id + 2], kill, d);
  }
  return;
}
int main() {
  int i, j, kase = 1, k, l, m, ans;
  scanf("%d%d%d", &ns, &a, &b);
  for (i = 0; i < ns; i++) scanf("%d", &health[i]);
  memset(dp, -1, sizeof(dp));
  ans = rec(1, health[0], health[1], health[2], 0);
  cout << ans << endl;
  call(1, health[0], health[1], health[2], 0, ans);
  return 0;
}
