#include <iostream>
#include<stack>
using namespace std;

int  status[4][2] = {0};
int a[4];
bool f[20][2] = {false};
string Move[2] = {"_come", "_go"};
string item[4] = {"nothing", "wolf", "sheep", "vegetable"};
stack<string>result;
bool check(int x, int d) {
    for (int i = 0 ; i < 4 ; ++ i ) {
        a[i] = status[i][1 - d];
    }
    a[x] = 1 - a[x];
    if (a[1] == 1 && a[2] == 1) return false ;
    if (a[2] == 1 && a[3] == 1) return false ;
    return true ;
}
int getNum() {
    return (status[0][0] << 3) + (status[1][0] << 2) + (status[2][0] << 1) +
           status[3][0];
}
bool solve(int d) {
    int f1 = getNum();
    if (f1 == 0 ) {
        return true ;
    }
    for (int i = 0 ; i < 4 ; ++ i ) {
        if (status[i][1-d] && check(i, d)) {
            if (i!=0) swap(status[i][0], status[i][1]);
            swap(status[0][0], status[0][1]);
            int x = getNum();
            if (f[x][1-d]) {
                if (i!=0) swap(status[i][0], status[i][1]);
                swap(status[0][0], status[0][1]);
                continue ;
            } else {
                result.push(item[i] + Move[d]);
                f[x][1-d] = true;
                bool f2 = solve(!d);
                if (f2 == false) {
                    result.pop();
                    f[x][1-d] = false ;
                    if (i!=0) swap(status[i][0], status[i][1]);
                    swap(status[0][0], status[0][1]);
                }else{
                    return true;
                }
            }
        }
    }
    return false ; 
}
void print(){
    if(result.empty()){
        return ; 
    }
    string ans = result.top();
    result.pop();
    print();
    cout<<ans<<endl;

}
int main() {
    for(int i = 0 ; i < 4 ; ++ i ) status[i][0]=1;
    f[15][0] = true ;
    if(solve(1)){
        print();
        cout<<"succeed\n";
    }
   
}
// 64 位输出请用 printf("%lld")