#include <bits/stdc++.h>
using namespace std;
const int MAX = 5e5 + 10;
const int MOD = 1e9 + 7;
char s[MAX];
int A[MAX], B[MAX];
stack<char> p;
int main() {
  int n;
  cin >> n;
  long long cnt = 0;
  for (int i = 0; i < n; i++) {
    scanf("%s", s);
    for (int j = 0, len = strlen(s); j < len; j++) {
      if (p.empty())
        p.push(s[j]);
      else {
        if (s[j] == ')' && p.top() == '(')
          p.pop();
        else
          p.push(s[j]);
      }
    }
    int x = 0, y = 0;
    while (!p.empty()) {
      if (p.top() == '(')
        x++;
      else
        y++;
      p.pop();
    }
    if (x == 0 && y) B[y]++;
    if (x && y == 0) A[x]++;
    if (x == 0 && y == 0) cnt++;
  }
  long long ans = cnt / 2;
  for (int i = 1; i <= 500000; i++) ans += min(A[i], B[i]);
  cout << ans << endl;
  return 0;
}
