#include #include #include #include using namespace std; using namespace atcoder; using ll = long long; using lb = long double; using P = pair; using T = tuple; using vll = vector; using vb = vector; using vvll = vector>; using vP = vector

; using Graph = vector>; using WGraph = vector>>; // コスト、頂点番号の順 using mint = modint998244353; //using mint = long double; #define rep0(i, n) for (ll i = 0; i < (ll)(n); i++) #define rep1(i, n) for (ll i = 1; i <= (ll)(n); i++) mt19937_64 rng(58); long double PI = 3.14159265358979; const ll LLMAX = 9223372036854775807; const ll INF = 1e18; vector di = {-1, 0, 1, 0}; // 上左下右 vector dj = {0, -1, 0, 1}; template inline bool chmax(T &a, T b) { return ((a < b) ? (a = b, true) : (false)); } template inline bool chmin(T &a, T b) { return ((a > b) ? (a = b, true) : (false)); } int main() { ll n, a, b; cin >> n >> a >> b; rep0 (ni, n) { ll p; cin >> p; if (p == 1) { if (a == 0) { cout << ni + 1 << endl; return 0; } a--; } else if (p == 2) { if (b == 0) { cout << ni + 1 << endl; return 0; } b--; } else { if (a == 0 || b == 0) { cout << ni + 1 << endl; return 0; } a--; b--; } } cout << -1 << endl; return 0; }