from collections import deque d=deque() N,M=map(int, input().split()) S=input() A=[0] for s in S: if s=='(': A.append(A[-1]+1) else: A.append(A[-1]-1) if min(A)<0 or A[-1]!=0: print('No') exit() A=A[1:-1] f=0 if min(A)==1: f=1 D={} for i in range(N-1): if S[i]=='('and S[i+1]==')': if i not in D: D[i]=[] D[i].append('1+1') l,r=i,i+1 while True: l-=1;r+=1 if l<0 or N<=r: break if S[l]=='('and S[r]==')': if r-1 not in D: D[r-1]=[] D[r-1].append('+1') else: break if S[i]==')'and S[i+1]=='(': if i not in D: D[i]=[] D[i].append('+') ans=[] for i in range(N): ans.append(S[i]) if i in D: ans.append(D[i][0]) ans=''.join(ans) if f==1: ans=ans+'+1' ans=''.join(ans) cnt=ans.count('1') if cnt>M: print('No') else: C=[] for i in range(M-cnt): C.append('+1') C=''.join(C) print('Yes') print(ans+C)