#include <iostream>
#include <map>
#include <cstring>
#include <vector>
using namespace std;


// 根据空格 分割字符串
static vector<string> getTokens(string s) {
    vector<string> arr;
    char tmp[101];
#pragma warning(disable : 4996)
    strcpy(tmp, s.c_str());
#pragma warning(disable : 4996)
    char* token = strtok(tmp, " ");

    while (token) {
        arr.push_back(token);
#pragma warning(disable : 4996)
        token = strtok(NULL, " ");
    }

    return arr;
}

// 判断文本是否在 命令中
static bool isEnable(vector<string> arr, string s) {
    vector<string> keys = getTokens(s);

    if (arr.size() > 2)
        return false;

    for (int i = 0; i < 2; i++) {
        if (arr[i][0] != keys[i][0] || keys[i].find(arr[i]) == string::npos)
            return false;
    }

    return true;

}

int main() {
    string a;
    map<string, string> dict;
    dict["reset board"] = "board fault";
    dict["board add"] = "where to add";
    dict["board delete"] = "no board at all";
    dict["reboot backplane"] = "impossible";
    dict["backplane abort"] = "install first";

    string unknownCommand = "unknown command";

    while (getline(cin, a)) {
        vector<string> arr = getTokens(a);

        if (arr.size() == 1) {
            string reset = "reset";
            string str = arr[0];
            if (str[0] == 'r' && reset.find(str) != string::npos) {
                cout << "reset what" << endl;
            } else {
                cout << unknownCommand << endl;
            }
        } else {
            string comstring = unknownCommand;
            int count = 0;
            for (auto str : dict) {
                if (isEnable(arr, str.first)) {
                    comstring = str.second;
                    count++;
                }
            }

            if (count == 1)
                cout << comstring << endl;
            else
                cout << unknownCommand << endl;
        }

    }

    return 0;
}