#include using namespace std; int typical_maxflow(vector> graph,int start,int goal){//graphは隣接行列 int N=graph.size(); int ans=0; int pointer=0; int m; vector reach; queue q; vector temp; int counter=0; while(true){ reach.resize(0); reach.resize(N,-1); queue ().swap(q); reach[start]=0; q.push(start); while(!q.empty() && q.front()!=goal){ for(int i=0;i0 && reach[i]==-1){ reach[i]=q.front(); q.push(i); } } q.pop(); } if(q.empty()){ return ans; } temp={}; pointer=goal; while(pointer!=start){ temp.push_back(pointer); pointer=reach[pointer]; } temp.push_back(start); m=graph[temp[1]][temp[0]]; for(int i=1;i>W>>N; vector J(N); for(int i=0;i>J[i]; } int M; cin>>M; vector C(M); for(int i=0;i>C[i]; } vector> graph(N+M+2,vector(N+M+2,inf)); for(int i=0;i>Q; for(int j=0;j>X; graph[X+1][i+N+2]=0; } } cout<<((W<=typical_maxflow(graph,0,1))?"SHIROBAKO":"BANSAKUTSUKITA")<