#include #include using namespace std; using namespace atcoder; const int inf = 1 << 30; void solve(){ int W, n; cin >> W >> n; vector J(n); for(int i = 0; i < n; i++) cin >> J[i]; int m; cin >> m; mf_graph G(n + m + 2); int s = n + m; int t = s + 1; for(int i = 0; i < n; i++) G.add_edge(s, i, J[i]); int c; for(int i = 0; i < m; i++){ cin >> c; G.add_edge(i + n, t, c); } for(int i = 0; i < m; i++){ int q; cin >> q; int x; vector ng(n, false); for(int j = 0; j < q; j++){ cin >> x; ng[x - 1] = true; } for(int j = 0; j < n; j++){ if(!ng[j]){ G.add_edge(j, n + i, inf); } } } int flow = G.flow(s, t); if(flow >= W) cout << "SHIROBAKO\n"; else cout << "BANSAKUTSUKITA\n"; } int main(){ cin.tie(0)->sync_with_stdio(0); int t; t = 1; //cin >> t; while(t--) solve(); }