#include using namespace std; const int MAX_N=200; const int INF=1e9; struct Flow{ struct Edge{ int to,cap,rev; }; vectorG[MAX_N]; bool used[MAX_N]; void Add_Edge(int from,int to,int cap){ G[from].push_back((Edge){to,cap,G[to].size()}); G[to].push_back((Edge){from,0,G[from].size()-1}); } int dfs(int v,int t,int f){ if(v==t)return f; used[v]=true; for(int i=0;i>W>>N; for(int i=0;i>J[i]; cin>>M; for(int i=0;i>C[i]; int s=N+M,t=N+M+1; for(int i=0;i>Q; bool can[50]={0}; for(int j=0;j>x; can[--x]=true; } for(int j=0;j=W)cout<<"SHIROBAKO"<