#include <bits/stdc++.h>
using namespace std;
#define nl '\n'
using ll = long long;
const ll infll = (1LL << 62) - 1;
const int inf = (1 << 30) - 1;
template <typename T1, typename T2>
ostream& operator<<(ostream& os, const pair<T1, T2>& p) {
os << p.first << " " << p.second;
return os;
}
template <typename T1, typename T2>
istream& operator>>(istream& is, pair<T1, T2>& p) {
is >> p.first >> p.second;
return is;
}
template <typename T>
ostream& operator<<(ostream& os, const vector<T>& v) {
for (int i = 0; i < (int)v.size(); i++) { os << v[i] << (i + 1 != v.size() ? " " : ""); }
return os;
}
template <typename T>
istream& operator>>(istream& is, vector<T>& v) {
for (T& in : v) is >> in;
return is;
}
template <typename T = ll>
vector<T> make_v(size_t a) {
return vector<T>(a);
}
template <typename T, typename... Ts>
auto make_v(size_t a, Ts... ts) {
return vector<decltype(make_v<T>(ts...))>(a, make_v<T>(ts...));
}
template <typename T, typename V>
typename enable_if<is_class<T>::value == 0>::type fill_v(T& t, const V& v) {
t = v;
}
template <typename T, typename V>
typename enable_if<is_class<T>::value != 0>::type fill_v(T& t, const V& v) {
for (auto& e : t) fill_v(e, v);
}
template <typename F>
struct FixPoint : F {
explicit FixPoint(F&& f) : F(forward<F>(f)) {}
template <typename... Args>
decltype(auto) operator()(Args&&... args) const {
return F::operator()(*this, forward<Args>(args)...);
}
};
template <typename F>
inline decltype(auto) MFP(F&& f) {
return FixPoint<F>{forward<F>(f)};
}
void solve() {
int a, b;
cin >> a >> b;
cout << a + b << nl;
}
signed main() {
std::ios_base::sync_with_stdio(0), std::cin.tie(0);
solve();
}