#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;
}