#include <bits/stdc++.h>
#include "teams.h"
using namespace std;
int n;
vector<int> a, b, p;
void init(int N, int A[], int B[]) {
n = N;
vector<int> ord(n);
iota(ord.begin(), ord.end(), 0);
ranges::sort(ord, [&](int i, int j) {
if (B[i] == B[j]) {
return A[i] > A[j];
}
return B[i] < B[j];
});
a.resize(n);
b.resize(n);
for (int i = 0; i < n; i++) {
a[i] = A[ord[i]];
b[i] = B[ord[i]];
}
}
int can(int M, int K[]) {
int m = M;
vector<int> k;
k.assign(K, K + M);
ranges::sort(k);
vector<bool> vis(n);
for (auto x : k) {
int cnt = 0;
for (int i = 0; i < n; i++) {
if (cnt == x) break;
if (!vis[i] && a[i] <= x && x <= b[i]) {
vis[i] = 1;
cnt++;
}
}
if (cnt < x) {
return 0;
}
}
return 1;
}