#include <stdio.h>
#include <string.h>
#include <stdbool.h>

#define MAX_LENGTH 102	/* 文字数100個 + 改行 + NULL文字 */

/* stack 定義 (容量が固定だったり char 限定だったり、結構適当) */
typedef struct
{
	char body[MAX_LENGTH];
	int  idx;
} stack_t;

/* stack 実体 */
static stack_t g_stack;

/* -------------------- stack 操作関数郡 ここから --------------------- */
/* stack の中身を消す */
void stack_clear(stack_t* p_stack)
{
	p_stack->idx = 0;
	return;
}

/* stack にpushする */
void stack_push(stack_t* p_stack, char c)
{
	p_stack->body[p_stack->idx] = c;
	p_stack->idx++;
	return;
}

/* stack からpopする (C++ と違って値を返すことに注意.) */
/* stack が空のときには呼び出さないこと. (0 を返すが 0 がpushされていた場合と区別が付かないので注意) */
char stack_pop(stack_t* p_stack)
{
	char c = 0;

	if(p_stack->idx != 0)
	{
		p_stack->idx--;
		c = p_stack->body[p_stack->idx];
	}
	return c;
}

/* stack が空なら true を返す */
bool stack_is_empty(stack_t* p_stack)
{
	return (p_stack->idx == 0) ? true : false;
}
/* -------------------- stack 操作関数郡 ここまで --------------------- */

/* 括弧がバランスしているか判定する (関数名は適当) */
bool solve(char* str)
{
	stack_t* p_stack = &g_stack;

	int i, length;
	char c;
	
	stack_clear( p_stack );
	
	length = strlen(str);
	for (i = 0; i < length; i++)
	{
		c = str[i];
//		printf("c=%c, stack_idx=%d, stack_top=%c\n", c, p_stack->idx, p_stack->idx != 0 ? p_stack->body[p_stack->idx - 1] : ' ');

		if (c == '(' || c == '[')
		{
			stack_push(p_stack, c);
		}
		else if (c == ')')
		{
			if (stack_is_empty(p_stack) || stack_pop(p_stack) != '(')
			{
				return false;
			}
		}
		else if (c == ']')
		{
			if (stack_is_empty(p_stack) || stack_pop(p_stack) != '[')
			{
				return false;
			}
		}
	}
	
	/* バランスしていればstackは空になる */
	return stack_is_empty( p_stack );
}

/* 改行を除いた1行を標準入力から取得する */
void get_line(char* str, char* max_size)
{
	char* cptr;

	fgets(str, max_size, stdin);

	cptr = strchr(str,'\n');
	if(cptr != NULL)
	{
		*cptr='\0';
	}
	
	return;
}

int main(void)
{
	char str[MAX_LENGTH];

	while(1)
	{
		get_line(str, MAX_LENGTH);
		if (strcmp(".", str) == 0)
		{
			break;
		}
		printf("%s\n", solve(str) ? "yes" : "no");
    }
	return 0;
}

