N=io.read"*n"
io.read()
S={}
for i=1,N do table.insert(S,io.read())end

local lr={}

local ls=string.byte"("
local rs=string.byte")"

for i,s in ipairs(S)do
	local b={s:byte(1,#s)}
	local l,r=0,0
	for j,v in ipairs(b) do
		if(v==ls)then
			r=r+1
		else
			if(r>0)then r=r-1
			else l=l+1 end
		end
	end
	if(l~=0 or r~=0)then table.insert(lr,{l,r})end
end

if(#lr==0)then print"Yes"return end

do
local s=0
for _,v in ipairs(lr)do
	s=s+v[1]-v[2]
end
if(s~=0)then print"No"return end
end

local bl,br=-1,-1
for i,v in ipairs(lr)do
	if(v[1]==0)then bl=i end
	if(v[2]==0)then br=i end
end
if(bl==-1 or br==-1)then print"No"return end

local s=lr[bl][2]
table.remove(lr,math.max(bl,br))
table.remove(lr,math.min(bl,br))
table.sort(lr,function(a,b)return a[1]-a[2]<b[1]-b[2]end)

for i,v in ipairs(lr)do
	s=s-v[1]
	if(s<0)then print"No"return end
	s=s+v[2]
end

print"Yes"