Problem:
 Score : 100 points    Problem Statement Takahashi wants to print a document with N pages double-sided, where two pages of data can be printed on one sheet of paper.  At least how many sheets of paper does he need?      Constraints  N is an integer.  1 \leq N \leq 100         Input Input is given from Standard Input in the following format:  N       Output Print the answer.        Sample Input 1 5      Sample Output 1 3  By printing the 1 -st, 2 -nd pages on the 1 -st sheet, 3 -rd and 4 -th pages on the 2 -nd sheet, and 5 -th page on the 3 -rd sheet, we can print all the data on 3 sheets of paper.       Sample Input 2 2      Sample Output 2 1       Sample Input 3 100      Sample Output 3 50

Solution (Python):
n=int(input())
if n%2==1:
    print(int((n+1)/2))
else:
    print(int(n/2))

Solution (Python):
N = int(input())

n = int(N / 2 + 0.5)

print(n)

Solution (Python):
N = int(input())

print((N-1)//2 +1)

Solution (Python):
n = int(input())

if n % 2 == 0:
  print(n // 2)
else:
  print(n//2 + 1)

Solution (Python):
n = int(input())
print(n//2 if n%2==0 else (n//2)+1)

Solution (Python):
N = int(input())
if N % 2 == 0:
  print(int(N / 2))
else:
  print(int(N / 2 + 1))

Solution (Python):
import math
n = int(input())
print(math.ceil(n/2))

Solution (Python):

n=int(input())
if(n%2==0):
  print(n//2)
else:
  print(n//2+1)

Solution (Python):
import math
N = int(input())

print(math.ceil(N/2))

Solution (Python):
print((int(input())+1)//2)

Solution (Python):
N = int(input())

print((N+1)//2)

Solution (Python):
n=int(input())
if n%2 == 0:
    print(n//2)
else:
    print(n//2+1)

Solution (Python):
N = int(input())
print(N//2 if N%2==0 else N//2+1)

Solution (Python):
n=int(input())
print((n-1)//2+1)

Solution (Python):
N = int(input())

ans = N // 2
if N % 2 == 1:
    ans += 1
print(ans)

Solution (Python):
N = int(input())
print(str(N//2+N%2))

Solution (Python):
n = int(input())
print((n//2)+n%2)

Solution (Python):
n=int(input())
print(n//2+n%2)

Solution (Python):
n=int(input())
if(n%2):
  print(n//2+1)
else:
  print(n//2)

Solution (Python):
N=int(input())

if N%2==0:
    print(N//2)
else:
    print(N//2+1)

Solution (Python):
n = int(input())
ans = -(-n//2)
print(ans)

Solution (Python):
n=int(input())
if n%2==0:
    print(n//2)
else:
    print(n//2+1)

Solution (Python):
print(-(-int(input())//2))

Solution (Python):
n=int(input())
ans=0
if n%2 ==0:
    ans=n//2
else:
    ans=n//2+1
print(ans)

Solution (Python):
inpu = int(input())
print(int((inpu + 1) / 2))

Solution (Python):
N=int(input())
print(-(-N // 2))

Solution (Python):
n=int(input())
print(-(n//-2))

Solution (Python):
n = int(input())
if n%2 == 0:
    print(n//2)
else:
    print(n//2+1)

Solution (Python):
n = int(input());

print((n+1)//2);

Solution (Python):
n=int(input())
if n % 2 != 0:
    print(n//2 + 1)
else:
    print(int(n/2))

Solution (Python):
N = int(input())
print((N + 1) // 2)

Solution (Python):
N = int(input())

if N % 2 == 0:
    print(N // 2)
else:
    print(N//2 + 1)

Solution (Python):
N = int(input())

if N % 2 == 0:
    print(N // 2)
else:
    print(N //2 + 1)

Solution (Python):
n = int(input())

if n % 2 == 0:
    print(int(n * 0.5))
elif n % 2 == 1:
    print(int(n * 0.5) + 1)

Solution (Python):
N = int(input())

if N % 2 == 0:
    print(N//2)
else:
    print(N//2+1)

Solution (Python):
n = int(input())

print((n+1)//2)

Solution (Python):

n = int(input())

print(-(-n//2))

Solution (Python):
n=int(input())
print(n//2 if n%2==0 else n//2+1)

Solution (Python):
import math
N = int(input())
print(math.ceil(N/2))

Solution (Python):
n=int(input())
print((n+2-1)//2)

Solution (Python):
import math
N = int(input())
print(math.ceil(N/2))

Solution (Python):
n=int(input())

if n%2==0:
    print(int(n/2))
if n%2==1:
    print(int((n+1)/2))

Solution (Python):
A = int(input())

if A % 2 == 0:
    print(A // 2)
else:
    print(A // 2 + 1)

Solution (Python):




import sys
input = sys.stdin.readline



def main():
    N = int(input())

    if N % 2 == 0:
        res = N // 2
    else:
        res = N // 2 + 1

    print(res)



main()

Solution (Python):
N = int(input())

if N%2==0:
    print(N//2)
else:
    print(N//2+ 1)

Solution (Python):
N=input()
if N%2==0:
    print N/2
else:
    print N/2+1

Solution (Python):
n = int(input())
if n %2 == 1:
  print(n//2 + 1)
else:
  print(n//2)

Solution (Python):
import sys
input = sys.stdin.readline

n = int(input())

import math

print(math.ceil(n / 2))

Solution (Python):
N = int(input())
if N % 2 == 0:
    print(N//2)
else:
    print(N//2+1)

Solution (Python):
n = int(input())
print (n//2) if n%2 == 0 else print ((n//2)+1)

Solution (Python):
N = int(input())
cnt = 0
if N % 2 == 0:
    cnt = N // 2
else:
    cnt = N // 2
    cnt += 1
print(cnt)

Solution (Python):
import math

N=int(input())

print(int(math.ceil(N/2)))

Solution (Python):
n = int(input())

answer = n / 2
answer = int(answer + 0.6)

print(answer)

Solution (Python):
n = int(input())

if (n % 2 == 0):
  print(int(n / 2))
else:
  print(int(n/2) + 1)

Solution (Python):
N = int(input())

print(str(N // 2 + N % 2))

Solution (Python):
import math
N = int(input())
print(math.ceil(N / 2))

Solution (Python):
n = int(input())
if n % 2 == 0: print(n//2)
else: print(n//2+1)

Solution (Python):
N = int(input())
print((N+1) // 2)

Solution (Python):
N = int(input())

if(N%2==0):
    print(N//2)
else:
    print(N//2+1)

Solution (Python):
def main():
    N = int(input())

    if N % 2 == 0:
        print(N // 2)
    else:
        print(N // 2 + 1)


if __name__ == "__main__":
    main()

Solution (Python):
N=int(input())
if(N%2==1):
    print((N//2)+1)
else:
    print(N//2)

Solution (Python):
n=int(input())
if n%2:
    print(n//2+1)
else:
    print(n//2)

Solution (Python):
import math
i=float(input())
k=i/2
print(math.ceil(k))

Solution (Python):
n = int(input())
print((n+2-1)//2)

Solution (Python):
n = int(input())
print(n//2 + n%2)

Solution (Python):
import math

N = int(input())
print(math.ceil(N / 2))

Solution (Python):
n=int(input())
print(n//2+n%2)

Solution (Python):
N = int(input())

if N%2==0:
    print(int(N//2))
else:
    print(int(N//2)+1)

Solution (Python):
n = [list(map(int, s.split())) for s in open(0)][0]
if n[0] % 2 != 0:
    print(n[0] // 2 + 1)
else:
    print(n[0] // 2 )

Solution (Python):






def main():
    N = int(input())
    print((N + 1) // 2)


if __name__ == "__main__":
    main()

Solution (Python):
n=int(input())

print((n+1)//2)

Solution (Python):
N = int(input())
print((N + 1) // 2)

Solution (Python):
n = int(input())

ans = n // 2

if n % 2 == 0:
    print(ans)
else:
    print(ans+1)

Solution (Python):
n = int(input())


if n % 2 == 1:

  print((n//2)+1)
else:
  print(n // 2)

Solution (Python):
N = int(input())

if N % 2 == 0:
  print(N // 2)
else:
  print(N // 2 + 1)

Solution (Python):


N = int(input())

if N % 2 == 0:
    print(N//2)
else:
    print((N//2)+1)

Solution (Python):
N=int(input())
print(N//2+N%2)

Solution (Python):

import sys


def solve(N: int):
    ans = N // 2
    if N % 2 == 1:
        ans += 1
    print(ans)
    return



def main():
    def iterate_tokens():
        for line in sys.stdin:
            for word in line.split():
                yield word
    tokens = iterate_tokens()
    N = int(next(tokens))  
    solve(N)


if __name__ == '__main__':
    main()

Solution (Python):
N = int(input())

ans = N // 2 + N % 2
print(ans)

Solution (Python):
N = int(input())

print(N//2 if N % 2 == 0 else (N//2)+1)

Solution (Python):
from sys import stdin


def main():
    input = lambda: stdin.readline()[:-1]
    N = int(input())
    print((N + 1) // 2)


main()

Solution (Python):
from math import ceil
x = int(input())
print(ceil(x/2))

Solution (Python):
N=int(input())
print((N+1)//2)

Solution (Python):



def input_one_number():
    return int(input())

n = input_one_number()

if n%2==1:
    n+=1

print(n//2)

Solution (Python):
N = int(input())

if N % 2 == 0:
    print(int(N/2))
else:
    print(N//2+1)

Solution (Python):
n=int(input())
print(n//2+n%2)

Solution (Python):
N = int(input())
print(abs(-N // 2))

Solution (Python):
import math
print(math.ceil(int(input())/2))

Solution (Python):
N = int(input())

ans = -(-N//2)

print(int(ans))

Solution (Python):


from queue import Queue
from queue import LifoQueue as Stack
from math import sqrt, floor, ceil, log2
from fractions import gcd
from itertools import permutations, combinations
from operator import itemgetter
from functools import cmp_to_key


yn = 'YNeos'
ynflg = False
cnt = 0
ans = None

def lcm(a, b):
    return (a*b) // gcd(a,b)

def intinput():
    return int(input())

def mulinputs():
    return map(int,input().split())

def lineinputs(func=intinput):
    datas = []
    while True:
        try:
            datas.append(func())
        except EOFError:
            break
    return datas



N = intinput()



if N %2 == 1:
    print((N//2 + 1))
else:
    print((N//2))

Solution (Python):
n = int(input())

print(-(-n // 2))

Solution (Python):
import sys

n = int(input())

if n%2==0:
    print(int(n/2))
    sys.exit()
else :
    print(n//2+1)

Solution (Python):
N = int(input())
if N % 2 == 0:
    print(N // 2)
else:
    print((N // 2) + 1)

Solution (Python):
N=int(raw_input())

print (N+1)//2

Solution (Python):
from math import ceil
n = int(input())
print(ceil(n/2))

Solution (Python):
import math
n = int(input())
print(math.ceil(n / 2))

Solution (Python):
n=int(input())

if n % 2 == 0:
    print(n // 2)
else:
    print(n // 2 + 1)

Solution (Python):
N = int(input())
if N % 2 ==0:
  print(int(N/2))
else:
  print(int(N/2) +1)

Solution (Python):
n = int(input())

if n%2==0:
    print(int(n/2))
else:
    print(int((n+1)/2))

Solution (Python):
import math


def resolve():
    a = int(input())
    print(math.ceil(a / 2))

resolve()

Solution (Python):
N = int(input())

if N % 2 == 1:
    N += 1

print(N//2)

Solution (Python):
import math
print(math.ceil(int(input())/2))

Solution (Python):
N = input()
N = int(N)

if N % 2 == 0:
  ans = int(N / 2)
else:
  ans = int(N / 2) + 1
print(ans)

Solution (Python):
import math
from collections import deque
def main():
    n = int(input())
    print(n//2+n%2)
    
if __name__ == "__main__":
    main()

Solution (Python):
n = int(input())
import math
print(math.ceil(n / 2))

Solution (Python):

import sys


def solve(N: int):
    if N % 2 == 0:
        print(N // 2)

    else:
        print(N // 2 + 1)
    return



def main():
    def iterate_tokens():
        for line in sys.stdin:
            for word in line.split():
                yield word

    tokens = iterate_tokens()
    N = int(next(tokens))  
    solve(N)


if __name__ == "__main__":
    main()

Solution (Python):





def solv(N):
    return (N+1) // 2


if __name__ == "__main__":

    
    
    N = int(input())
    ans = solv(N)

    print(ans)

Solution (Python):
N = int(input())
if N % 2 == 0:
  ans = N//2
else:
  ans = N//2 + 1
print(ans)

Solution (Python):
import math
n = int(input())
print(math.ceil(n / 2))

Solution (Python):
import math

def resolve():
    N = int(input())
    print(math.ceil(N/2))


if __name__ == "__main__":
    resolve()

Solution (Python):

import sys
import math

def solve(N: int):
    print(str(math.ceil(N/2)))
    return



def main():
    def iterate_tokens():
        for line in sys.stdin:
            for word in line.split():
                yield word
    tokens = iterate_tokens()
    N = int(next(tokens))  
    solve(N)

if __name__ == '__main__':
    main()

Solution (Python):
import math

n = int(input())
print(math.ceil(n/2))

Solution (Python):
N = int(input())

if N % 2 == 0 :
    print(int(N/2))
else :
    print(int(N/2) + 1)

Solution (Python):
n = int(input())
print((n + 1) // 2)

Solution (Python):
import sys,collections,math,random,fractions,bisect;sys.setrecursionlimit(10**7)
sr = sys.stdin.readline; P = print; P2 = lambda x: print(*x, sep="\n")
def I(i=0): t = [int(x)-i for x in sr().split()];return t
def S(): t = sr().split(); return t if len(t) > 1 else t[0]
L1,L2,L3,L4, = [],[],[],[]
 
a, = I()
print(math.ceil(a/2))

Solution (Python):
n = int(input())
if n%2==0:
  print(n//2)
else:
  print(n//2+1)

Solution (Python):
a = int(input())
print(int(-(-a//2)))

Solution (Python):
n = int(input())
ans = n//2
if n% 2 != 0:
    ans += 1
print(ans)

Solution (Python):
from math import ceil
n = int(input())
print(ceil(n / 2))

Solution (Python):
import math
n = int(input())
print(math.ceil(n/2))

Solution (Python):
import math

N = int(input())
print(math.ceil(N / 2))

Solution (Python):
import math
N = int(input())
print(math.ceil(N/2))

Solution (Python):
n = int(input())

print(int((n+1)/2))

Solution (Python):
N = int(input())
if(N%2 == 0):
    print(N//2)
else:
    print(N//2+1)

Solution (Python):
import sys
input = sys.stdin.readline

def main():
    N = int(input())
    ans = N/2
    if ans > N // 2:
        print(N//2+1)
    else:
        print(N//2)



if __name__ == "__main__":
    main()

Solution (Python):
import math
n = int(input())
print(math.ceil(n/2))

Solution (Python):
print((int(input())+1)//2)

Solution (Python):
a = int(input())

if a % 2 == 1:
  print(int(a // 2 + 1))
else:
  print(int(a //2))

Solution (Python):
import math
print(math.ceil(int(input())/2))

Solution (Python):
N = int(input())

print((N - 1) // 2 + 1)

Solution (Python):
N = int(input()) 

s = N //2
a = N % 2

if a == 1:
    s += 1
print(s)

Solution (Python):
a = int(input())
print(int(a / 2) + a % 2)

Solution (Python):
n=int(input())
print(n//2+n%2)

Solution (Python):
N = int(input())

if N % 2 == 0:
    print(int(N/2))
else:
    print( int(N/2 + 1 ))

Solution (Python):
import math

n = int(input())
print(math.ceil(n/2))

Solution (Python):
N = int(input())
if N%2 == 0:
  ans = N//2
else:
  ans = (N+1)//2
print(ans)

Solution (Python):
import math
print(math.ceil(int(input()) / 2))

Solution (Python):
"""
 = int(input())
 = map(int, input().split())
 = list(map(int, input().split()))
"""

N = int(input())
if N % 2 == 0:
    print(N // 2)
else:
    print(N // 2 + 1)

Solution (Python):
N = int(input())
a =  N // 2
b = N % 2
print(a + b)

Solution (Python):
N = int(input())
if N % 2 == 0:
    print(int(N/2))
else:
    print(int(N/2)+1)

Solution (Python):
import sys







def main():
    N = int(input())

    print((N+1)//2)


if __name__ == '__main__':
    main()

Solution (Python):
N = int(input())
if N % 2 == 1:
    print(N // 2 + 1)
else:
    print(N // 2)

Solution (Python):
import math
N=int(input())
ans=math.ceil(N/2)
print(ans)

Solution (Python):
import math
A = int(input())
print(math.ceil(A/2))

Solution (Python):
N = int(input())
print((N+1)//2)

Solution (Python):
N = int(input())
if N % 2 == 0:
  print(N // 2)
else:
  print(N // 2 + 1)

Solution (Python):
n = int(input())

if n % 2 == 0:
    print(int(n/2))
else:
    print(int(n/2) + 1)

Solution (Python):
N = int(input())
print(N//2 + N % 2)

Solution (Python):
n = int(input())

print(n//2 + n%2)

Solution (Python):
n = int(input())
if n%2 == 0: print(n//2)
else: print((n+1)//2)

Solution (Python):
n = int(input())

if n%2:
    print(n//2+1)
else:
    print(n//2)

Solution (Python):
N= int(input()) 
if N % 2 == 0:
  print(N // 2)
else:
  print(N // 2 + 1)

Solution (Python):
N = int(input())

if N % 2 == 0:
    print(N // 2)
else:
    print((N + 1) // 2)

Solution (Python):

n=int(input())

import math 

res=math.ceil(n/2) 
print(res)

Solution (Python):



import numpy as np
from numpy import newaxis, float32, float64, int32, int64, int16, int8, uint8, uint32, complex64, complex128



def getIntList(inp):
	return [int(_) for _ in inp]
	

from sys import stdin

def getInputs():
	inputs=[]
	for line in stdin:
		line=line.split()
		inputs.append(line)
	return inputs


def m(t0,x0,y0,t1,x1,y1):
	d=abs(x1-x0)+abs(y1-y0)
	dt=t1-t0
	if d>dt: return False
	dd=d-dt
	return dd%2==0


def main(inputs):
	n=int(inputs[0][0])
	print(int(np.ceil(n/2)))
	

if __name__=="__main__":
	inputs=getInputs()

	main(inputs)

Solution (Python):
n = int(input())
print((n + 1) // 2)

Solution (Python):
n = int(input())
ans = (n+2-1)//2
print(ans)

Solution (Python):
n = int(input())
print((n + 1) // 2)

Solution (Python):
import sys
input = lambda: sys.stdin.readline().rstrip()
input_nums = lambda: list(map(int, input().split()))

n = int(input())
if n % 2 == 0:
    print(n//2)
else:
    print(n//2+1)

Solution (Python):

n = int(input())

print(-(-n//2))

Solution (Python):
N=int(input())

print(-(-N//2))

Solution (Python):
n=int(input())
if n%2==0:
    print(n//2)
else:
    print(n//2+1)

Solution (Python):
N = int(input())
if N%2 == 0:
    ans = int(N//2)
else:
    ans = int(N//2) + 1

print(ans)

Solution (Python):
i = int(input())

print(i//2 + i%2)

Solution (Python):
n=int(input())
print(int(n//2)) if n%2==0 else print(int(n//2)+1)

Solution (Python):
n = int(input())
ans = (n + 1) // 2
print(ans)

Solution (Python):
N = int(input())
print(N//2 + N%2)

Solution (Python):
N = int(input())

s = N // 2
if N % 2 == 0:
    print(s)
else:
    print(s + 1)

Solution (Python):
N = int(input())

print(N//2+ N%2)

Solution (Python):
print(-1*(-int(input())//2))

Solution (Python):
N = int(input())
if N % 2 == 0:
    print(int(N / 2))
else:
    print(int(N // 2 + 1))

Solution (Python):
import math
n = int(input())

print(math.ceil(n/2))

Solution (Python):
n = int(input())
if (n % 2 == 0):
    print(n // 2)
else:
    print((n // 2) + 1)

Solution (Python):
import math
n = input()
n = int(n)

print(int(math.ceil(n/2)))

Solution (Python):
N=int(input())
print((N+1)//2)

Solution (Python):
n = int(input())
print((n+1)//2)

Solution (Python):
import math
N = int(input())

print(math.ceil(N/2))

Solution (Python):
n = int(input())
if n % 2 == 0:
    print(int(n / 2))
else:
    print(int((n + 1) / 2))

Solution (Python):
n = int(input())
if n // 2 * 2 == n:
  print(n // 2)
else:
  print(n // 2 + 1)

Solution (Python):
n = int(input())
if n % 2 == 0:
    print(n//2)
else:
    print(n//2 + 1)

Solution (Python):
import sys
import math
input = sys.stdin.readline
sys.setrecursionlimit(10**6)


def main():
    n = int(input())
    ans = math.ceil(n/2)
    print(ans)


main()

Solution (Python):
N = int(input())
print(int((N+1)/2))

Solution (Python):
n=int(input())
if n%2==0:
    print(n//2)
else:
    print(n//2 + 1)

Solution (Python):
import math
N = int(input())

print(math.ceil(N/2))

Solution (Python):

import math

N = int(input())

print(math.ceil(N / 2))

Solution (Python):
import math
n=int(input())
print(math.ceil(n/2))

Solution (Python):
N = int(input())
print((N+1) // 2)

Solution (Python):


n = int(input())
if n % 2 == 0:
    print(n // 2)
else:
    print(n // 2 + 1)

Solution (Python):
n = int(input())

if n %2:
    print(n//2+1)
else:
    print(n//2)

Solution (Python):
import math
n = int(input())
print(math.ceil(n/2))

Solution (Python):
N = int(input())
print(N//2 + (N&1))

Solution (Python):
N = int(input())
print(int(N / 2 if not N % 2 else N // 2 + 1))

Solution (Python):
N = int(input())
print((N+1)//2)

Solution (Python):

from math import ceil
def main():
    n = int(input())
    print(ceil(n/2))
main()

Solution (Python):
n = int(input())

if n % 2 == 0:
    print(n//2)
else:
    print((n//2)+1)

Solution (Python):
a = int(input())
print(a//2+a%2)

Solution (Python):
N=int(input())
if N%2==0:
  print(N//2)
else:
  print(N//2+1)

Solution (Python):
N=int(input())
if N%2:
    N+=1
print(N//2)

Solution (Python):
from collections import defaultdict
from collections import deque
from string import ascii_uppercase
import sys, bisect, math, heapq

stdin = sys.stdin
read_int = lambda : list(map(int,stdin.readline().split()))
read_str = lambda : stdin.readline().rstrip()

N = read_int()[0]


def solve():
    return N // 2 + N % 2

if __name__ == "__main__":
    print(solve())

Solution (Python):
import math

A = int(input())

print(math.ceil(A/2))

Solution (Python):
n = int(input())

print(int(n/2+0.5))

Solution (Python):
n = int(input())
ans = -(-n // 2)
print(ans)

Solution (Python):
X = int(input())
print(X // 2 + (1 if X % 2 == 1 else 0))

Solution (Python):
N = int(input())
print(N//2+int(N%2==1))

Solution (Python):
N = int(input())

if N % 2 ==1:
    print(N // 2 + 1)
else:
    print(N // 2)

Solution (Python):
n = int(input())
ans = sum(divmod(n, 2))
print(ans)

Solution (Python):
import math



n = int(input())
print(math.ceil(n/2))

Solution (Python):
n = int(input())
print(int((n + 1) / 2))

Solution (Python):
n = int(input())
print((n + 1) // 2)

Solution (Python):
import math

n = int(input())
print(math.ceil(n/2)
)

Solution (Python):

import sys
import math
from bisect import bisect_left
from bisect import bisect_right
import collections
import copy
import heapq
from collections import defaultdict
from heapq import heappop, heappush
import itertools
input = sys.stdin.readline

























def inputInt(): return int(input())
def inputMap(): return map(int, input().split())
def inputList(): return list(map(int, input().split()))

inf = float('inf')
mod = 1000000007




def main():
	N = inputInt()

	ans = -(-N // 2)

	print(ans)








def combination(n, r, mod=10**9+7):
    r = min(r, n-r)
    res = 1
    for i in range(r):
        res = res * (n - i) * modinv(i+1, mod) % mod
    return res


def modinv(a, mod=10**9+7):
    return pow(a, mod-2, mod)

def egcd(a, b):
    if a == 0:
        return b, 0, 1
    else:
        g, y, x = egcd(b % a, a)
        return g, x - (b // a) * y, y



def H(n, r, mod=10**9+7):
	
	
    return combination(n+r-1, r, mod)

class Combination:
    """
    O(n)の前計算を1回行うことで，O(1)でnCr mod mを求められる
    n_max = 10**6のとき前処理は約950ms (PyPyなら約340ms, 10**7で約1800ms)
    使用例：
    comb = Combination(1000000)
    print(comb(5, 3))  
    """
    def __init__(self, n_max, mod=10**9+7):
        self.mod = mod
        self.modinv = self.make_modinv_list(n_max)
        self.fac, self.facinv = self.make_factorial_list(n_max)

    def __call__(self, n, r):
        return self.fac[n] * self.facinv[r] % self.mod * self.facinv[n-r] % self.mod

    def make_factorial_list(self, n):
        
        
        fac = [1]
        facinv = [1]
        for i in range(1, n+1):
            fac.append(fac[i-1] * i % self.mod)
            facinv.append(facinv[i-1] * self.modinv[i] % self.mod)
        return fac, facinv

    def make_modinv_list(self, n):
        
        modinv = [0] * (n+1)
        modinv[1] = 1
        for i in range(2, n+1):
            modinv[i] = self.mod - self.mod//i * modinv[self.mod%i] % self.mod
        return modinv

if __name__ == "__main__":
	main()

Solution (Python):
n = int(input())
if n % 2 == 0:
  print(int(n/2))
else:
  print(int(n/2)+1)

Solution (Python):
n = input()
if n%2==0:
  print(n/2)
else:
  print(n/2+1)

Solution (Python):
N = int(input())
print((N+1)//2)

Solution (Python):

n = int(input())
print(n//2+n%2)

Solution (Python):
n = int(input())
result = n // 2 + n % 2
print(result)

Solution (Python):
import math
n=int(input())
print(n//2+(n%2))

Solution (Python):
import math
n = int(input())
print(math.ceil(n/2))

Solution (Python):
n=int(input())
if n%2==0:
  print(int(n//2))
else:
  print(int(n//2)+1)

Solution (Python):
import math
n=int(input())
print(math.ceil(n / 2))

Solution (Python):
n = int(input())
print(n//2+1 if n%2 != 0 else n//2)

Solution (Python):



import sys
import math

s2nn = lambda s: [int(c) for c in s.split(' ')]
ss2nn = lambda ss: [int(s) for s in list(ss)]
ss2nnn = lambda ss: [s2nn(s) for s in list(ss)]
i2s = lambda: sys.stdin.readline().rstrip()
i2n = lambda: int(i2s())
i2nn = lambda: s2nn(i2s())
ii2ss = lambda n: [i2s() for _ in range(n)]
ii2nn = lambda n: ss2nn(ii2ss(n))
ii2nnn = lambda n: ss2nnn(ii2ss(n))

def main():
    N = i2n()
    print(math.ceil(N / 2))
    return

main()

Solution (Python):
n = int(input())
if n%2 == 0:
    print(n//2)
else:
    print(n//2+1)

Solution (Python):
import sys
import math
input = sys.stdin.readline



N = int(input())

print(math.ceil(N/2))

Solution (Python):
n = int(input())

if n % 2 == 0:
    print(n // 2)
else:
    print((n + 1) // 2)

Solution (Python):
n=int(input())
print((n+1)//2)

Solution (Python):
n = int(input())
print((n+1)//2)

Solution (Python):
N = int(input())

a = N // 2
b = N % 2
print(a + b)

Solution (Python):
n=int(input())
if n%2==0:
    print(n//2)
else:
    print(n//2+1)

Solution (Python):
N = int(input())

if N % 2 == 0:
  print(N//2)
else:
  print(N//2+1)

Solution (Python):
def main():
    n = int(input())
    if n %2 ==0:
        print(n//2)
        return
    else:
        print(n//2 + 1)
if __name__=='__main__':
    main()

Solution (Python):
N=int(input())                                          


if N %2 == 0:
	print(int(N/2))
else:
	print(int((N+1)/2))

Solution (Python):
num = int(input())


q, m = divmod(num, 2)
if  m == 1:
    print(q+1)
else:
    print(q)

Solution (Python):
import sys
input = sys.stdin.readline


def main():
    n = int(input())
    if n % 2 == 0:
        print(n//2)
    else:
        print(n//2+1)


if __name__ == "__main__":
    main()

Solution (Python):
import math

x = int(input())
ans = math.ceil(x / 2)

print(ans)

Solution (Python):
n=int(input())

if n%2==0:
    print(n//2)
else:
    print((n//2)+1)

Solution (Python):
import math
n = int(input())

print(math.ceil(n/2))

Solution (Python):

''':'
docker run --rm -it -v $(cd $(dirname $0) && pwd):/vo:ro pypy:3-2.4.0 \
   /bin/bash -c "pypy3 /vo/$(basename $0) < /vo/g.inp"
exit $?
'''
import sys
import math

def _i(): return int(sys.stdin.readline().strip())

print(math.ceil(_i()/2))

Solution (Python):

"""
Created on Sun Mar  1 20:51:26 2020

@author: H_Hoshigi
"""

N = int(input())

print((N+1)//2)

Solution (Python):
n = int(input())

if n % 2 == 0:
  print(n//2)
else:
  print((n//2)+1)

Solution (Python):
N=int(input())

ans = N // 2 + N % 2

print(ans)

Solution (Python):
N = int(input())
print(N // 2 + N % 2)

Solution (Python):
n=int(input()) 

if n%2 ==0:
    print(n//2)
else:
    print(n//2 + 1)

Solution (Python):
n = int(input())
if n % 2:
    print(n // 2 +1)
else:
    print(n//2)

Solution (Python):
n = int(input())
if(n%2==0):
  print(n//2)
else:
  print(n//2+1)

Solution (Python):
n = int(input())
cnt = 0
while n > 2 * cnt:
    cnt += 1
print(cnt)

Solution (Python):
N = int(input())
if N%2 == 0:
    print(N//2)
else:
    print(1+N//2)

Solution (Python):
n = int(input())
if (n % 2 == 0):
  print(n//2)
else:
  print(n//2+1)

Solution (Python):
N=int(input())
if N%2!=0:
  print(N//2+1)
else:
  print(N//2)

Solution (Python):
N = int(input())
if N%2 == 0:
  print(N//2)
else:
  print((N//2)+1)

Solution (Python):


from math import ceil
n = int(input())

print(ceil(n / 2))

Solution (Python):
import math
import itertools
import statistics



n = int(input())
if n%2==0:
    print(n//2)
else:
    print(n//2+1)

Solution (Python):
import math

N =int(input())
print(math.ceil(N/2))

Solution (Python):
n = int(input())
if n % 2 == 0:
	print(int(n/2))
else:
	print(int((n + 1)/2))

Solution (Python):
import sys
range = xrange
input = raw_input

n = int(input())
print (n + 1) >> 1

Solution (Python):

si = lambda: input()
ni = lambda: int(input())
nm = lambda: map(int, input().split())
nms = lambda: map(str, input().split())
nl = lambda: list(map(int, input().split()))
n=int(input())
if n%2==1:
    print(n//2+1)
else:
    print(n//2)

Solution (Python):
N=int(input())

if N%2==1:
	print(int(N/2)+1)
else:
	print(int(N/2))

Solution (Python):
N = int(input())
print(-N//2*(-1))

Solution (Python):
print(sum(divmod(int(input()), 2)))

Solution (Python):
import sys, math
a = int(input())
print(math.ceil(a/2))

Solution (Python):
import sys
import math
import bisect

def main():
    n = int(input())
    ans = n // 2 + n % 2
    print(ans)

if __name__ == "__main__":
    main()

Solution (Python):
n=int(input())
print(n//2+(n%2))

Solution (Python):
N = int(input())

import math

print(math.ceil(N/2))

Solution (Python):
import sys
sys.setrecursionlimit(10**6)

ii = lambda: int(input())
mis = lambda: map(int,input().split())
lmis = lambda: list(mis())
INF = float('inf')

def main():
    N=ii()
    print(-(-N//2))


if __name__ == "__main__":
    main()

Solution (Python):

n=int(input())
if n%2==0:
    print(n//2)
else:
    print(n//2+1)

Solution (Python):
import math
n = int(input())
print(math.ceil(n/2))

Solution (Python):

import sys,os
sys.setrecursionlimit(10**6)
write = sys.stdout.write
dbg = (lambda *something: print(*something)) if 'TERM_PROGRAM' in os.environ else lambda *x: 0
def main(given=sys.stdin.readline):
    input = lambda: given().rstrip()
    LMIIS = lambda: list(map(int,input().split()))
    II = lambda: int(input())
    XLMIIS = lambda x: [LMIIS() for _ in range(x)]
    YN = lambda c : print('Yes') if c else print('No')
    MOD = 10**9+7

    N = II()
    from math import ceil
    print(ceil(N/2))
    

if __name__ == '__main__':
    main()

Solution (Python):
n = int(input())
print(-1*(-n//2))

Solution (Python):
from math import ceil
N = int(input())
print(ceil(N/2))

Solution (Python):
N = int(input())
print(-(-N//2))

Solution (Python):
n = int(input())
print(int((n+1)/2))

Solution (Python):
import sys
import math
import copy
import queue
input = sys.stdin.readline
input = sys.stdin.readline
a = int(input())
print (math.ceil(a / 2))

Solution (Python):
N = int(input())
print((N+1)//2)

Solution (Python):

import sys
INF = float("inf")


def solve(N: int):
    print((N+1)//2)
    return


def main():

    def iterate_tokens():
        for line in sys.stdin:
            for word in line.split():
                yield word
    tokens = iterate_tokens()
    N = int(next(tokens))  
    solve(N)


if __name__ == '__main__':
    main()

Solution (Python):

def sRaw():
    return input().rstrip("\r")


def iRaw():
    return int(input())


def ssRaw():
    return input().split()


def isRaw():
    return list(map(int, ssRaw()))

INF = 1 << 29

DIV = (10**9) + 7

def mod_inv_prime(a, mod=DIV):
    return pow(a, mod-2, mod)


def ncr(n, r, mod=DIV):
	r = min(r, n-r)
	ret = 1
	for i in range(1, r+1):
		ret = ret * (n-i+1) % mod
		ret = ret * mod_inv(i, mod) % mod
	return ret

def mod_inv(a, b):
    r = a
    w = b
    u = 1
    v = 0
    while w != 0:
        t = r//w
        r -= t*w
        r, w = w, r
        u -= t*v
        u, v = v, u
    return (u % b+b) % b


def CONV_TBL(max,mod=DIV):
    fac,finv,inv = [0]*max, [0]*max, [0]*max
    fac[0]=fac[1]=1
    finv[0]=finv[1]=1
    inv[1]=1
    for i in range(2,max):
        fac[i] = fac[i-1]*i % mod
        inv[i] = mod -inv[mod%i] * (mod//i)%mod
        finv[i] = finv[i-1]*inv[i]%mod
    class CONV:
        def __init__(self):
            pass
        def ncr(self,n,k):
            if(n<k):
                return 0
            if(n<0 or k<0 ):
                return 0
            return fac[n]*(finv[k]*finv[n-k]%mod)%mod
    return CONV()


def main():
    N= iRaw()
    ans = (N+1)//2
    return ans



if __name__ == "__main__":
    print(main())

Solution (Python):
import numpy as np
import math

if __name__ == "__main__":
  _n = int(input())
  ans = math.ceil(_n / 2)
  print(ans)

Solution (Python):

N = int(input())

ans = N//2 if N%2==0 else N//2+1
print(ans)

Solution (Python):
N = input()

if int(N) % 2 == 1:
    print(int(N) // 2 + 1)
else:
    print(int(N) // 2)

Solution (Python):
import math
print(math.ceil(int(input())/2))

Solution (Python):
N = int(input())

if N % 2 == 1:
    print(N//2+1)
else:
    print(N//2)

Solution (Python):
n=int(input())
print(int((n+1)/2))

Solution (Python):
N = int(input())
if N % 2 == 0:
    print(N // 2)
else:
    print(N // 2 + 1)

Solution (Python):
N = int(input())
if N%2 == 0:
  print(N//2)
else:
  print(N//2 + 1)

Solution (Python):
N=int(input())
s=N//2
if N%2!=0:
  s+=1
print(s)

Solution (Python):
N = int(input())

if N % 2 == 0:
    print(N//2)
else:
    print(N//2+1)