Example

Input

3
()(()((
))()()(()
)())(())


Output

Yes
#include <bits/stdc++.h>
using namespace std;
typedef pair<int,int> P;

P StoP(string a){
  int top=0,first=0;
  for(int i=0;i<a.size();i++){
    if(a[i]=='(') top++;
    else if(top) top--;
    else first++;
  }
  return P(first,top);
}

int main(){
  int n;
  cin>>n;
  
  P p[101];
  int cnt=0;
  for(int i=0;i<n;i++){
    string tmp;
    cin>>tmp;
    p[i]=StoP(tmp);
    if(!p[i].second) cnt+=p[i].first,i--,n--;
  }


  bool ans=1,used[101]={};
  int top=0;
  for(int i=0;i<n&&ans;i++){
    int idx=-1,mx=-1e9;
    for(int j=0;j<n;j++){
      if(used[j]||top-p[j].first<0)continue;
      int k=p[j].second-p[j].first;
      if(mx<k) mx=k,idx=j;
    }
    if(idx==-1) ans=0;
    top+=mx;
    used[idx]=1;
  }
  cout<<(ans&&!(top-cnt)? "Yes":"No")<<endl;
	
  
  return 0;
}