- #include <iostream> 
- #include <iterator> 
- #include <sstream> 
- #include <stdexcept> 
- #include <string> 
- #include <vector> 
-   
- int main() 
- { 
-   bool result; 
-   
-   // Read the line 
-   std::string line; 
-   std::getline(std::cin, line); 
-   
-   // Split the line at spaces (https://stackoverflow.com/a/237280/1944004) 
-   std::istringstream iss(line); 
-   std::vector<std::string> tokens{std::istream_iterator<std::string>{iss}, std::istream_iterator<std::string>{}}; 
-   
-   // Convert last element to bool 
-   if (tokens.back() == "true") result = true; 
-   else if (tokens.back() == "false") result = false; 
-   else throw std::invalid_argument("The last argument is not a boolean!"); 
-   
-   // Remove the last element 
-   tokens.pop_back(); 
-   
-   // Loop over the nots 
-   for (auto const& t : tokens) 
-   { 
-     if (t == "not") result = !result; 
-     else throw std::invalid_argument("Negation has to be indicated by 'not'!"); 
-   } 
-   
-   // Output the result 
-   std::cout << std::boolalpha << result << '\n'; 
- } 
				I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aXRlcmF0b3I+CiNpbmNsdWRlIDxzc3RyZWFtPgojaW5jbHVkZSA8c3RkZXhjZXB0PgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8dmVjdG9yPgoKaW50IG1haW4oKQp7CiAgYm9vbCByZXN1bHQ7CgogIC8vIFJlYWQgdGhlIGxpbmUKICBzdGQ6OnN0cmluZyBsaW5lOwogIHN0ZDo6Z2V0bGluZShzdGQ6OmNpbiwgbGluZSk7CgogIC8vIFNwbGl0IHRoZSBsaW5lIGF0IHNwYWNlcyAoaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzIzNzI4MC8xOTQ0MDA0KQogIHN0ZDo6aXN0cmluZ3N0cmVhbSBpc3MobGluZSk7CiAgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IHRva2Vuc3tzdGQ6OmlzdHJlYW1faXRlcmF0b3I8c3RkOjpzdHJpbmc+e2lzc30sIHN0ZDo6aXN0cmVhbV9pdGVyYXRvcjxzdGQ6OnN0cmluZz57fX07CgogIC8vIENvbnZlcnQgbGFzdCBlbGVtZW50IHRvIGJvb2wKICBpZiAodG9rZW5zLmJhY2soKSA9PSAidHJ1ZSIpIHJlc3VsdCA9IHRydWU7CiAgZWxzZSBpZiAodG9rZW5zLmJhY2soKSA9PSAiZmFsc2UiKSByZXN1bHQgPSBmYWxzZTsKICBlbHNlIHRocm93IHN0ZDo6aW52YWxpZF9hcmd1bWVudCgiVGhlIGxhc3QgYXJndW1lbnQgaXMgbm90IGEgYm9vbGVhbiEiKTsKCiAgLy8gUmVtb3ZlIHRoZSBsYXN0IGVsZW1lbnQKICB0b2tlbnMucG9wX2JhY2soKTsKCiAgLy8gTG9vcCBvdmVyIHRoZSBub3RzCiAgZm9yIChhdXRvIGNvbnN0JiB0IDogdG9rZW5zKQogIHsKICAgIGlmICh0ID09ICJub3QiKSByZXN1bHQgPSAhcmVzdWx0OwogICAgZWxzZSB0aHJvdyBzdGQ6OmludmFsaWRfYXJndW1lbnQoIk5lZ2F0aW9uIGhhcyB0byBiZSBpbmRpY2F0ZWQgYnkgJ25vdCchIik7CiAgfQoKICAvLyBPdXRwdXQgdGhlIHJlc3VsdAogIHN0ZDo6Y291dCA8PCBzdGQ6OmJvb2xhbHBoYSA8PCByZXN1bHQgPDwgJ1xuJzsKfQ==