Problem:
Score: 100 points

Problem Statement

There is a train going from Station A to Station B that costs X yen (the currency of Japan).

Also, there is a bus going from Station B to Station C that costs Y yen.

Joisino got a special ticket. With this ticket, she can take the bus for half the fare if she travels from Station A to Station B by train and then travels from Station B to Station C by bus.

How much does it cost to travel from Station A to Station C if she uses this ticket?

Constraints

1 \leq X,Y \leq 100

Y is an even number.

All values in input are integers.

Input

Input is given from Standard Input in the following format:

X Y

Output

If it costs x yen to travel from Station A to Station C, print x.

Sample Input 1

81 58

Sample Output 1

110

The train fare is 81 yen.

The train fare is 58 ⁄ 2=29 yen with the 50% discount.

Thus, it costs 110 yen to travel from Station A to Station C.

Sample Input 2

4 54

Sample Output 2

31

Solution in C++14 (GCC 5.4.1) (judge verdict: Accepted)

#include <cstdio>
#include <cmath>
#include <climits>
#include <cctype>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <cassert>
#include <string>
#include <stack>
#include <queue>
#include <deque>
#include <bitset>
#include <fstream>
#include <functional>
#include <utility>
#include <map>
#include <set>
#include <vector>
#include <list>
#include <iomanip>


#define memtst(x) (sizeof(x) / 1024. / 1024.)
#define mem0(x) memset((x), 0, (sizeof x))
#define meminf(x) memset((x), INF, (sizeof x))
#define pb(x) push_back(x)
#define pf(x) push_front(x)
#define pq std::priority_queue
#define iter iterator
#define mp(x, y) std::make_pair((x), (y))
#define fst first
#define sec second
#define lc(x) ((x) * 2)
#define rc(x) ((x) * 2 + 1) 
#define md(x, y) (((x) + (y)) / 2)


typedef long long ll;
typedef unsigned long long ull;
typedef double db;
typedef std::pair <int, int> pii;


const double PI = acos(-1);
const double EPS = 1e-6;
const ll MOD = 1000000007;
const ll INF = 0x3F3F3F3F;


template <typename T>
inline T Abs(T x)
{
	return x < 0 ? x * -1 : x;
}


template <typename T>
inline T Max(T x, T y, T z)
{
	return std::max(std::max(x, y), z);
}
template <typename T>
inline T Min(T x, T y, T z)
{
	return std::min(std::min(x, y), z);
}


template <typename T>
inline void Ckmax(T &x, T y)
{
	x = std::max(x, y);
}


template <typename T>
inline void Ckmin(T &x, T y)
{
	x = std::min(x, y);
}


template <typename T>
inline T Sqr(T x)
{
	return x * x;
}


template <typename T>
inline T Pow(T x, T y)
{
	T r = 1;
	while (y > 0)
	{
		if (y % 2 > 0)
			(r *= x) %= MOD;
		(x *= x) %= MOD;
		y /= 2;
	}
	return r % MOD;
}


template <typename T>
T Pow(T x, T y, T z)
{
	T r = 1;
	while (y > 0)
	{
		if (y % 2 > 0)
			(r *= x) %= z;
		(x *= x) %= z;
		y /= 2;
	}
	return r % z;
}


template <typename T>
inline T gcd(T x, T y)
{
	return y > 0 ? gcd(y, x % y) : x;
}


template <typename T>
inline T lcm(T x, T y)
{
	return x / gcd(x, y) * y;
}


inline void cinspu(void)
{
	std::ios::sync_with_stdio(0);
	std::cin.tie(0);
}


inline ll read(void)
{
	char x;
	while (x = getchar(), x != '-' && !isdigit(x))
		;
	char flg = x == '-';
	ll num = (flg ? getchar() : x) - '0';
	while (isdigit(x = getchar()))
		(num *= 10) += x - '0';
	return flg ? -num : num;
}

int main()
{
	int a, b;
	std::cin >> a >> b;
	std::cout << a + b / 2 << std::endl;
	return 0;
}