using System;
using System.Text.RegularExpressions;
public class Test {
static bool HasOnlyOne(Match m, int g1, int g2) {
if (!m.Success) {
return false;
}
var has1 = m.Groups[g1].Success;
var has2 = m.Groups[g2].Success;
return !has1 || !has2;
}
public static void Main() {
var r = new Regex(@"^[@][nN]([$]|[~][^~]*[~])?(-)?[1-9][0-9]*(-)?([$]|[~][^~]*[~])?$");
string s;
while ((s = Console.ReadLine()) != null) {
var m = r.Match(s);
bool good = HasOnlyOne(m, 1, 4) && HasOnlyOne(m, 2, 3);
if (good) {
Console.WriteLine("Match: {0}", s);
} else {
Console.WriteLine("Fail: {0}", s);
}
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGV4dC5SZWd1bGFyRXhwcmVzc2lvbnM7CgpwdWJsaWMgY2xhc3MgVGVzdCB7CiAgICBzdGF0aWMgYm9vbCBIYXNPbmx5T25lKE1hdGNoIG0sIGludCBnMSwgaW50IGcyKSB7CiAgICAJaWYgKCFtLlN1Y2Nlc3MpIHsKICAgIAkJcmV0dXJuIGZhbHNlOwogICAgCX0KICAgIAl2YXIgaGFzMSA9IG0uR3JvdXBzW2cxXS5TdWNjZXNzOwogICAgCXZhciBoYXMyID0gbS5Hcm91cHNbZzJdLlN1Y2Nlc3M7CiAgICAJcmV0dXJuICFoYXMxIHx8ICFoYXMyOwogICAgfQoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKSB7CgkJdmFyIHIgPSBuZXcgUmVnZXgoQCJeW0BdW25OXShbJF18W35dW15+XSpbfl0pPygtKT9bMS05XVswLTldKigtKT8oWyRdfFt+XVtefl0qW35dKT8kIik7CgkJc3RyaW5nIHM7CgkJd2hpbGUgKChzID0gQ29uc29sZS5SZWFkTGluZSgpKSAhPSBudWxsKSB7CgkJCXZhciBtID0gci5NYXRjaChzKTsKCQkJYm9vbCBnb29kID0gSGFzT25seU9uZShtLCAxLCA0KSAmJiBIYXNPbmx5T25lKG0sIDIsIDMpOwoJCQlpZiAoZ29vZCkgewoJCQkJQ29uc29sZS5Xcml0ZUxpbmUoIk1hdGNoOiB7MH0iLCBzKTsKCQkJfSBlbHNlIHsKCQkJCUNvbnNvbGUuV3JpdGVMaW5lKCJGYWlsOiB7MH0iLCBzKTsKCQkJfQoJCX0KCX0KCn0K