#define BOOST_RESULT_OF_USE_DECLTYPE
#include <boost/range/istream_range.hpp>
#include <boost/range/algorithm.hpp>
#include <boost/range/adaptors.hpp>
#include <iostream>
using boost::copy;
using boost::for_each;
using boost::adaptors::transformed;
using boost::adaptors::indexed;
template <typename Rng, unsigned per_line=8>
void dump(const Rng& data)
{
auto idx = data | indexed(1);
for(auto it = begin(idx); it != end(idx); ++it)
std::cout << *it << ((it.index() % per_line == 0)? '\n' : ' ');
}
int main() {
using std::string;
auto toupper = [](string s) -> string { for_each(s, [](char& c) { c = std::toupper((unsigned char) c); }); return s; };
auto input = boost::istream_range<string>(std::cin);
dump(input | transformed(toupper));
return 0;
}
I2RlZmluZSBCT09TVF9SRVNVTFRfT0ZfVVNFX0RFQ0xUWVBFCiNpbmNsdWRlIDxib29zdC9yYW5nZS9pc3RyZWFtX3JhbmdlLmhwcD4KI2luY2x1ZGUgPGJvb3N0L3JhbmdlL2FsZ29yaXRobS5ocHA+CiNpbmNsdWRlIDxib29zdC9yYW5nZS9hZGFwdG9ycy5ocHA+CiNpbmNsdWRlIDxpb3N0cmVhbT4KCnVzaW5nIGJvb3N0Ojpjb3B5Owp1c2luZyBib29zdDo6Zm9yX2VhY2g7CnVzaW5nIGJvb3N0OjphZGFwdG9yczo6dHJhbnNmb3JtZWQ7CnVzaW5nIGJvb3N0OjphZGFwdG9yczo6aW5kZXhlZDsKCnRlbXBsYXRlIDx0eXBlbmFtZSBSbmcsIHVuc2lnbmVkIHBlcl9saW5lPTg+CiAgICB2b2lkIGR1bXAoY29uc3QgUm5nJiBkYXRhKQp7CiAgICBhdXRvIGlkeCA9IGRhdGEgfCBpbmRleGVkKDEpOwogICAgZm9yKGF1dG8gaXQgPSBiZWdpbihpZHgpOyBpdCAhPSBlbmQoaWR4KTsgKytpdCkKICAgICAgICBzdGQ6OmNvdXQgPDwgKml0IDw8ICgoaXQuaW5kZXgoKSAlIHBlcl9saW5lID09IDApPyAnXG4nIDogJyAnKTsKfQoKaW50IG1haW4oKSB7CiAgICB1c2luZyBzdGQ6OnN0cmluZzsKCiAgICBhdXRvIHRvdXBwZXIgPSBbXShzdHJpbmcgcykgLT4gc3RyaW5nIHsgZm9yX2VhY2gocywgW10oY2hhciYgYykgeyBjID0gc3RkOjp0b3VwcGVyKCh1bnNpZ25lZCBjaGFyKSBjKTsgfSk7IHJldHVybiBzOyB9OwogICAgYXV0byBpbnB1dCA9IGJvb3N0Ojppc3RyZWFtX3JhbmdlPHN0cmluZz4oc3RkOjpjaW4pOwoKICAgIGR1bXAoaW5wdXQgfCB0cmFuc2Zvcm1lZCh0b3VwcGVyKSk7CgogICAgcmV0dXJuIDA7Cn0K