#include <iostream>
#include <string>
struct component
{
double quantity;
std::string unit;
std::string ingredient;
};
std::istream& operator>>(std::istream& is, component & c)
{
component temp;
is >> temp.quantity >> temp.unit;
getline(is, temp.ingredient);
if (is)
c = temp;
return is;
}
void verbose(std::ostream& os, component const& c)
{
os << '\n';
os << "quantity: " << c.quantity << '\n';
os << "unit: " << c.unit << '\n';
os << "ingredient: " << c.ingredient << '\n';
}
int main() {
for (component c; std::cin >> c; )
verbose(std::cout, c);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgoKc3RydWN0IGNvbXBvbmVudAp7Cglkb3VibGUgcXVhbnRpdHk7CglzdGQ6OnN0cmluZyB1bml0OwoJc3RkOjpzdHJpbmcgaW5ncmVkaWVudDsKfTsKCnN0ZDo6aXN0cmVhbSYgb3BlcmF0b3I+PihzdGQ6OmlzdHJlYW0mIGlzLCBjb21wb25lbnQgJiBjKQp7Cgljb21wb25lbnQgdGVtcDsKCWlzID4+IHRlbXAucXVhbnRpdHkgPj4gdGVtcC51bml0OwoJZ2V0bGluZShpcywgdGVtcC5pbmdyZWRpZW50KTsKCWlmIChpcykKCSAgICBjID0gdGVtcDsKCXJldHVybiBpczsKfQoKdm9pZCB2ZXJib3NlKHN0ZDo6b3N0cmVhbSYgb3MsIGNvbXBvbmVudCBjb25zdCYgYykKewoJb3MgPDwgJ1xuJzsKCW9zIDw8ICJxdWFudGl0eTogICAiIDw8IGMucXVhbnRpdHkgPDwgJ1xuJzsKCW9zIDw8ICJ1bml0OiAgICAgICAiIDw8IGMudW5pdCA8PCAnXG4nOwoJb3MgPDwgImluZ3JlZGllbnQ6ICIgPDwgYy5pbmdyZWRpZW50IDw8ICdcbic7Cn0KCmludCBtYWluKCkgewoJZm9yIChjb21wb25lbnQgYzsgc3RkOjpjaW4gPj4gYzsgKQoJICAgIHZlcmJvc2Uoc3RkOjpjb3V0LCBjKTsKfQ==