int main(){ int n;cin>>n; for(int i=0;i<n;++i){ int t;cin>>t; if(t&1)o.pb(t); else e.pb(t); } sort(o.begin(),o.end()); reverse(o.begin(),o.end()); // sort(e.begin(),e.end()); reverse(e.begin(),e.end()); int mx=o[0],now=o[0]; for(int i=1;i+1<o.size();i+=2){ now+=o[i]+o[i+1]; mx=max(mx,now); } for(int i:e)if(i>0)mx+=i; cout<<mx<<endl; }
void go(int now,int pa){ if(del[now])return; ans.pb(now); del[now]=1; for(int i:G[now]){ if(i!=pa)go(i,now); } }
void init(){ for(int i=2;i<=1000;++i){ if(!v[i])p.pb(i); for(int j=0;i*p[j]<=1000;++j){ v[i*p[j]]=1; if(i%p[j]==0)break; } } for(int i:p)sp.insert(i); }
void pnt(int lft,int st){ pit(mx);el; while(lft>=st){ ans.pb(st); lft-=st; ++st; } ans.back()+=lft; for(auto &i:ans)pit(i),spc;el; }
int main(){ int ts; cin>>ts; while(ts--){ pos.clear(); int n,k; cin>>n>>k; for(int i=0,t;i<n;++i){ cin>>t; pos.pb(t); } sort(pos.begin(),pos.end()); int L=0,R=1000000000,M; while(R>L){ M=(L+R)>>1; if(can(M,k))R=M; else L=M+1; } cout<<L<<endl; } }
void pdfs(int now){ if(in[now])return; in[now]=1; for(int i:G[now])pdfs(i); tp.pb(now); }