#include <string>
#include <iostream>
using namespace std;
enum lex_t {
INVALID,
THE,
NOUN,
VERB,
CONJ,
DOT,
};
string word;
lex_t token;
lex_t word_token( const string& w )
{
if( w == "the" ) {
return THE;
}
if( w == "birds" ||
w == "fish" ||
w == "C++"
) {
return NOUN;
}
if( w == "fly" ||
w == "rules" ||
w == "swim"
) {
return VERB;
}
if( w == "and" ||
w == "or" ||
w == "but"
) {
return CONJ;
}
if( w == "." ) {
return DOT;
}
return INVALID;
}
void next_word()
{
cin >> word;
token = word_token( word );
}
bool maybe( lex_t t )
{
if( token == t ) {
next_word();
}
return true;
}
bool match( lex_t t )
{
if( token == t ) {
next_word();
return true;
}
return false;
}
void skip( lex_t t )
{
while( !match( t ) ) {
next_word();
}
}
bool sentence()
{
if( maybe( THE ) && match( NOUN ) && match( VERB ) ) {
if( match( CONJ ) ) {
return sentence();
}
if( match( DOT ) ) {
return true;
}
return false;
}
skip( DOT );
return false;
}
int main() {
next_word();
while( cin ) {
cout << boolalpha << sentence() << endl;
}
}
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmVudW0gbGV4X3QgewoJSU5WQUxJRCwKCVRIRSwKCU5PVU4sCglWRVJCLAoJQ09OSiwKCURPVCwKfTsKCnN0cmluZyB3b3JkOwpsZXhfdCB0b2tlbjsKCmxleF90IHdvcmRfdG9rZW4oIGNvbnN0IHN0cmluZyYgdyApCnsKCWlmKCB3ID09ICJ0aGUiICkgewoJCXJldHVybiBUSEU7Cgl9CgkKCWlmKCB3ID09ICJiaXJkcyIgfHwKCQl3ID09ICJmaXNoIiB8fAoJCXcgPT0gIkMrKyIKCSkgewoJCXJldHVybiBOT1VOOwoJfQoJCglpZiggdyA9PSAiZmx5IiB8fAoJCXcgPT0gInJ1bGVzIiB8fAoJCXcgPT0gInN3aW0iIAoJKSB7CgkJcmV0dXJuIFZFUkI7Cgl9CgkKCWlmKCB3ID09ICJhbmQiIHx8CgkJdyA9PSAib3IiIHx8CgkJdyA9PSAiYnV0IiAKCSkgewoJCXJldHVybiBDT05KOwoJfQoJCglpZiggdyA9PSAiLiIgKSB7CgkJcmV0dXJuIERPVDsKCX0KCQoJcmV0dXJuIElOVkFMSUQ7Cn0KCnZvaWQgbmV4dF93b3JkKCkKewoJY2luID4+IHdvcmQ7Cgl0b2tlbiA9IHdvcmRfdG9rZW4oIHdvcmQgKTsKfQoKYm9vbCBtYXliZSggbGV4X3QgdCApCnsKCWlmKCB0b2tlbiA9PSB0ICkgewoJCW5leHRfd29yZCgpOwoJfQoJcmV0dXJuIHRydWU7Cn0KCmJvb2wgbWF0Y2goIGxleF90IHQgKQp7CglpZiggdG9rZW4gPT0gdCApIHsKCQluZXh0X3dvcmQoKTsKCQlyZXR1cm4gdHJ1ZTsKCX0KCXJldHVybiBmYWxzZTsKfQoKdm9pZCBza2lwKCBsZXhfdCB0ICkKewoJd2hpbGUoICFtYXRjaCggdCApICkgewoJCW5leHRfd29yZCgpOwoJfQp9Cgpib29sIHNlbnRlbmNlKCkKewoJaWYoIG1heWJlKCBUSEUgKSAmJiBtYXRjaCggTk9VTiApICYmIG1hdGNoKCBWRVJCICkgKSB7CgkJaWYoIG1hdGNoKCBDT05KICkgKSB7CgkJCXJldHVybiBzZW50ZW5jZSgpOwoJCX0KCQlpZiggbWF0Y2goIERPVCApICkgewoJCQlyZXR1cm4gdHJ1ZTsKCQl9CgkJcmV0dXJuIGZhbHNlOwoJfQoJc2tpcCggRE9UICk7CglyZXR1cm4gZmFsc2U7Cn0KCmludCBtYWluKCkgewoJbmV4dF93b3JkKCk7Cgl3aGlsZSggY2luICkgewoJCWNvdXQgPDwgYm9vbGFscGhhIDw8IHNlbnRlbmNlKCkgPDwgZW5kbDsKCX0KfQ==