Go: package main

import (
	"bufio"
	"fmt"
	"os"
	"strings"
)

var sc = bufio.NewScanner(os.Stdin)

func main() {
	sc.Scan()
	fmt.Println(strings.ToUpper(sc.Text()))
}

C++: #include <iostream>
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <algorithm>
#include <stdlib.h>
#include <vector>

using namespace std;


int main(){
	string input;
	string str;

	while(cin >> input){
		str += ' ';
		str += input;
	}
	string temp;
	temp += str[1];
	for(int i=2 ; i<str.size() ; i++){
		if(str[i] >= 'a' && str[i] <= 'z'){
			str[i] = 'A' + str[i] - 'a';
		}
		temp += str[i];
	}
	str = temp;

	cout <<  str << endl;
	return 0;
}

C++: #include <stdio.h>
#include <ctype.h>

int main(void){
	char buff[8192];
	char *p;

	scanf("%s",buff);
	p=buff;
	while(*p!='\0'){
		*p=toupper(*p);
		p++;
	}
	printf("%s\n",buff);
}

C++: #include <iostream>
#include <string>
#include <algorithm>
#include <iterator>
#include <cctype>

int main()
{
	std::string input_text;
	std::getline(std::cin, input_text);
	std::transform(
			input_text.begin(), input_text.end(),
			std::ostream_iterator<char>(std::cout, ""),
			static_cast<int(*)(int)>(&std::toupper));
	std::cout << std::endl;

	return 0;
}

C++: #include<iostream>
#include<string>
#include <stdio.h>
#include <math.h>
#include <cctype>
#include<queue>
#include<stack>
#include<cstdio>
#include <algorithm>
#include <cstdio>
using namespace std;
int main(){
	string s;
	getline(cin,s);
	for(int i=0;i<=s.size();i++){
			s[i]=toupper(s[i]);
		}
		cout<<s<<endl;
		return 0;
}

C++: #include <iostream>
using namespace std;

int main(){
  string str;
  int i;
  int gap;

  gap='a'-'A';
  std::getline(std::cin, str);
  for(i=0; i<str.size(); i++){
    if(str[i]!=' ' && str[i]!='.') str[i]-=gap;
  }
  cout<<str<<endl;

  return 0;
}

C++: //↓template↓

#include "bits/stdc++.h"
using namespace std;
#define Would
#define you
#define all(n)  n.begin(),n.end()
const long long INF = 1e18;
const long long MOD = 1e9 + 7;
const double pi = acos(-1);
const int SIZE = 1 << 17;
int dx[] = { 1,0,-1,0 }, dy[] = { 0,1,0,-1 }, alp[30];
long long fac[200005], finv[200005], inv[200005];
vector<long long>dij;
struct edge { long long to, cost; };
vector<vector<edge> >G;

long long mod_pow(long long a, long long b) {
	long long res = 1, mul = a;
	for (int i = 0; i < 31; ++i) {
		if (b >> i & 1) {
			res *= mul;
			res %= MOD;
		}
		mul = (mul * mul) % MOD;
	}

	return res;
}

void addedge(int from, int to, int cost) {
	G[from].push_back({ to,cost });
	G[to].push_back({ from,cost });
}

//↑template↑

int main() {
	string h;
	getline(cin, h);
	transform(all(h), h.begin(), ::toupper);
	cout << h << endl;
}

C++: #include <iostream>
#include <string>
using namespace std;


int main() {
  int n;
  string str;

  while(cin >> str) {
    n = str.size();
    for(int i=0;i<n;i++) {
      if((str[i] <= 122) && (str[i] >= 97)) {
        str[i] -= 32;
      }
    }
    if(str[n-1] == 46)
      cout << str;
    else
      cout << str << " ";
  }
  cout << endl;
}

C++: 
#include<stdio.h>
#include<ctype.h>
 
int main(void){
 
    char s;
 
    while(1){
 
        scanf("%c",&s);
 
        if( s != '.' && s!= ' ' && (s<'a'||s>'z'))
            break;
 
        else if(s>='a'&&s<='z')
            printf("%c",toupper(s));
 
        else
            printf("%c",s);
 
 
    }
 
    puts("");
 
    return 0;
}

C++: #include <iostream>
#include <string>
using namespace std;

int main(){
	int a;
	string input, output;
	getline(cin, input);
	for(int i=0;i<input.size();i++){
		a = input[i];
		if (a > 96){
			a -= 32;
		}
		output += a;
	}
	cout << output << endl;
	return 0;
}

C++: #include <iostream>
#include <ctype.h>
#include <cstdio>
#include <string>
using namespace std;

int main() {
	string s;
	getline(cin, s);
	for(int i = 0; i < s.size(); i++) {
		if('a' <= s[i] && s[i] <= 'z') s[i] += 'A' - 'a'; 
	}
	cout << s << endl;;
}

C++: #define _USE_MATH_DEFINES
#include<iostream>
#include<string>
#include<queue>
#include<cmath>
#include<map>
#include<set>
#include<list>
#include<iomanip>
#include<vector>
#include<random>
#include<functional>
#include<algorithm>
#include<stack>
#include<cstdio>
#include<bitset>
#include<unordered_map>
#include<climits>
#include<fstream>
using namespace std;
///////////////////library zone!!!!!!!!!!!!!!!!!!!!!!!!!!!!
typedef long long ll;
typedef long double ld;
#define all(a) (a).begin(),(a).end()
#define EPS (1e-5)
const ll Mod = 1000000007;
const ll mod = 998244353;
struct H {
	ll x, y;
	bool operator<(const H &b) const {
		if (x != b.x) return x < b.x;
		return y < b.y;
	}
	bool operator>(const H &b) const {
		if (x != b.x) return x > b.x;
		return y > b.y;
	}
	bool operator==(const H &b) const { return x == b.x&&y == b.y; }
	bool operator!=(const H &b) const { return (*this) != b; }
};
struct P {
	ll pos, cost;
	bool operator<(const P &b) const { return cost < b.cost; }
	bool operator>(const P &b) const { return cost > b.cost; }
};
struct B {
	ll to, cost;
};
struct E {
	ll from, to, cost;
	bool operator<(const E &b) const { return cost < b.cost; }
	bool operator>(const E &b) const { return cost > b.cost; }
};
template<typename T, typename U>
void chmin(T &a, U b) {
	if (a > b) a = b;
}
template<typename T, typename U>
void chmax(T &a, U b) {
	if (a < b) a = b;
}
template<typename T>
T max_0(T a) {
	if (a < 0) return 0;
	return a;
}
template<typename T>
T min_0(T a) {
	if (a > 0) return 0;
	return a;
}
ll read() {
	ll u;
	ll k = scanf("%lld", &u);
	return u;
}
ll gcd(ll i, ll j) {
	if (i > j) swap(i, j);
	if (i == 0) return j;
	return gcd(j%i, i);
}
ll mod_pow(ll x, ll n, ll p) {
	ll res = 1;
	while (n > 0) {
		if (n & 1) res = res * x % p;
		x = x * x % p;
		n >>= 1;
	}
	return res;
}//x^n%p
vector<string>split(string s, char c = ' ') {
	vector<string>vec;
	string h = "";
	for (int i = 0; i < s.size();) {
		int j = i;
		while (j < s.size() && s[j] != ' ') {
			h += s[j++];
		}
		if (h.size() > 0) vec.push_back(h);
		h = "";
		i = j + 1;
	}
	return vec;
}
const ll Inf = 3023372036854775807;
const int inf = 1500000000;
#define int long long
//----------------------------------------------------
class Vec2 {
public:
	ld x, y;
	Vec2() { x = 0, y = 0; }
	Vec2(ld x, ld y) :x(x), y(y) {}
	ld length() {
		return sqrt(x*x + y * y);
	}
	void normal() {
		ld len = this->length();
		if (len == 0) return;
		x /= len, y /= len;
	}
	Vec2 operator+(Vec2 vec) {
		return Vec2(x + vec.x, y + vec.y);
	}
	Vec2 operator-(Vec2 vec) {
		return Vec2(x - vec.x, y - vec.y);
	}
	Vec2 operator*(int cons) {
		return Vec2(x*cons, y*cons);
	}
	ld operator*(Vec2 vec) {
		return x * vec.x + y * vec.y;
	}
	ld operator%(Vec2 vec) {
		return x * vec.y - y * vec.x;
	}
};
ld dot(Vec2 a, Vec2 b) {
	return a.x*b.x + a.y*b.y;
}
ld cross(Vec2 a, Vec2 b) {
	return a.x*b.y - a.y*b.x;
}
ld areaIntegral(Vec2 a, Vec2 b) {
	return abs(a.x*b.y - a.y*b.x) / 2.0;
}
class Vec3 {
public:
	ld x, y, z;
	Vec3() { x = 0, y = 0, z = 0; }
	Vec3(ld x, ld y, ld z) :x(x), y(y), z(z) {}
	ld length() {
		return sqrt(x*x + y * y + z * z);
	}
	void normal() {
		ld len = this->length();
		if (len == 0) return;
		x /= len, y /= len, z /= len;
	}
	Vec3 operator+(Vec3 vec) {
		return Vec3(x + vec.x, y + vec.y, z + vec.z);
	}
	Vec3 operator-(Vec3 vec) {
		return Vec3(x - vec.x, y - vec.y, z - vec.z);
	}
	Vec3 operator*(int cons) {
		return Vec3(x*cons, y*cons, z*cons);
	}
	ld operator*(Vec3 vec) {
		return x * vec.x + y * vec.y + z * vec.z;
	}
};
ld dot(Vec3 a, Vec3 b) {
	return a.x*b.x + a.y*b.y + a.z*b.z;
}
class Line {
public:
	Vec2 from, to;
	Line(Vec2 from, Vec2 to) :from(from), to(to) {}
};
Line getPerpendicularBisector(Line line) {
	int cx = (line.from.x + line.to.x) / 2, cy = (line.from.y + line.to.y) / 2;
	Vec2 p = Vec2(cx + (line.from.y - line.to.y), cy + (line.to.x - line.from.x));
	return Line(Vec2(cx, cy), p);
}
signed main() {
	string s;
	getline(cin, s);
	for (int i = 0; i < s.size(); i++) {
		if ('a' <= s[i] && s[i] <= 'z') {
			s[i] += ('A' - 'a');
		}
	}
	cout << s << endl;
}