#include<iostream>#include<cstdio>#include<cstring>using namespace std;bool flag=false;int kk;char GetNext() //将没用的符号过滤掉{ char c; while(scanf("%c",&c) && (c==' ' || c=='n' || c==9 || c==10)); return c;}int dfs(int sum,int hight){ int sign=1,k=0,k1,k2; char c; c=GetNext(); if(c==')') { return hight; } if(c=='-')//当为负数时 { sign=-sign; c=GetNext(); } while((c>='0' && c<='9'))//取数字 { k=k*10+(c-'0')*sign; scanf("%c",&c); } if(c=='n' || c==' ') c=GetNext(); if(c=='(') k1=dfs(sum+k,hight+1); //返回左孩子高度 c=GetNext(); if(c=='(') k2=dfs(sum+k,hight+1);//返回右孩子高度 c=GetNext(); if(k2==hight+1 && k1==hight+1)//判断是否是叶子节点 { if(sum+k==kk) flag=true; } return 0;}int main(){ while(scanf("%d",&kk)!=EOF) { flag=false; GetNext(); dfs(0,0); //GetNext(); if(flag) printf("yesn"); else printf("non"); } return 0;}