#include<iostream>
#include<string>
#include<vector>
using namespace std;
#define max 100
struct edge{
string first;//边的初始结点
string change;//边的条件
string last;//边的终点
};
int N;//NFA的边数
vector<int> value;
string closure(string a,edge *b)
{
int i,j;
for(i=0;i<a.length();i++)
{
for(j=0;j<N;j++)
{
if(b[j].first[0]==a[i]&&b[j].change=="&")
{
a=a+b[j].last[0];
}
}
}
return a;
}
string move(string jihe,char ch,edge *b)
{
int i,j;
string s="";
for(i=0;i<jihe.length();i++)
{
for(j