#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
int n;
string str;
int l[5 * N], r[5 * N], zero;
int main() {
  cin >> n;
  while (n--) {
    stack<char> st;
    while (!st.empty()) st.pop();
    cin >> str;
    for (int i = 0; i < str.size(); i++) {
      if (st.empty())
        st.push(str[i]);
      else {
        if (str[i] == ')' && st.top() == '(')
          st.pop();
        else
          st.push(str[i]);
      }
    }
    int len = 0;
    if (st.size() == 0)
      zero++;
    else {
      len = st.size();
      if (st.top() == '(') {
        while (!st.empty() && st.top() == '(') st.pop();
        if (st.size() == 0) l[len]++;
      } else {
        while (!st.empty() && st.top() == ')') st.pop();
        if (st.size() == 0) r[len]++;
      }
    }
  }
  int res = zero / 2;
  for (int i = 1; i <= 500000; i++) res += min(l[i], r[i]);
  cout << res << endl;
  return 0;
}
