#include <bits/stdc++.h>
using namespace std;
struct item
{
int a, b, id;
} v[10010];
bool cmp(item a, item b)
{
if ((a.b >= a.a) != (b.b >= b.a)) return a.b >= a.a;
else return (a.b >= a.a) ? (a.a < b.a) : (a.b > b.b);
}
int main()
{
int n;
cin >> n;
for (int i = 0; i < n; i++)
{
string s;
cin >> s;
int l = 0, r = 0;
for (auto j : s)
{
r += (j == ')' && !l);
l += (j == '(') - (j == ')' && l);
}
v[i] = {r, l, i + 1};
}
sort(v, v + n, cmp);
int s = 0;
for (int i = 0; i < n; i++)
{
if (s < v[i].a) return puts("NO"), 0;
s += v[i].b - v[i].a;
}
if (s != 0) return puts("NO"), 0;
puts("YES");
for (int i = 0; i < n; i++) printf("%d ", v[i].id);
puts("");
}
妙啊 ✧(∗≧ꇴ≦)✧