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):
import math
print(math.ceil(int(input())/ 2))

Solution (Python):
N = int(input())
print((N-1)//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):
n=int(input())
print((n+1)//2)

Solution (Python):
import sys, bisect, math, itertools, string, queue, copy


from collections import Counter,defaultdict,deque
from itertools import permutations, combinations
from heapq import heappop, heappush
input = sys.stdin.readline
sys.setrecursionlimit(10**8)
mod = 10**9+7
def inp(): return int(input())
def inpm(): return map(int,input().split())
def inpl(): return list(map(int, input().split()))
def inpls(): return list(input().split())
def inplm(n): return list(int(input()) for _ in range(n))
def inplL(n): return [list(input()) for _ in range(n)]
def inplT(n): return [tuple(input()) for _ in range(n)]
def inpll(n): return [list(map(int, input().split())) for _ in range(n)]
def inplls(n): return sorted([list(map(int, input().split())) for _ in range(n)])

def main():
    n = inp()
    print(n//2+n%2)
    
if __name__ == "__main__":
    main()

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

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

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

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

print((n+1)//2)

Solution (Python):
import sys

def getN():
    return int(input())
def getNM():
    return map(int, input().split())
def getlist():
    return list(map(int, input().split()))
import math
import heapq
import bisect
from collections import defaultdict, Counter, deque
MOD = 10**9 + 7
INF = 10**21

def main():
    n = getN()
    print((n+1)//2)

if __name__ == '__main__':
    main()

"""
9999
3

2916
"""

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))

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:
  print(n//2+1)
else:
  print(n//2)

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

Solution (Python):


import sys
import math
from bisect import bisect_right as br
from bisect import bisect_left as bl
sys.setrecursionlimit(2147483647)
from heapq import heappush, heappop,heappushpop
from collections import defaultdict
from itertools import accumulate
from collections import Counter
from collections import deque
from operator import itemgetter
from itertools import permutations
mod = 10**9 + 7
inf = float('inf')
def I(): return int(sys.stdin.readline())
def LI(): return list(map(int,sys.stdin.readline().split()))

n = I()

print(math.ceil(n/2))

Solution (Python):
n = int(input())
print((n + 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+1)//2)

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

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

Solution (Python):
import sys, re
from collections import deque, defaultdict, Counter
from math import ceil, sqrt, hypot, factorial, pi, sin, cos, radians
from itertools import accumulate, permutations, combinations, product
from operator import itemgetter, mul
from copy import deepcopy
from string import ascii_lowercase, ascii_uppercase, digits
from bisect import bisect, bisect_left
from fractions import gcd
from heapq import heappush, heappop
from functools import reduce
def input(): return sys.stdin.readline().strip()
def INT(): return int(input())
def MAP(): return map(int, input().split())
def LIST(): return list(map(int, input().split()))
sys.setrecursionlimit(10 ** 9)
INF = float('inf')
mod = 10 ** 9 + 7

N = INT()

print(-(-N//2))

Solution (Python):

import sys, math, itertools, collections, bisect
input = lambda: sys.stdin.buffer.readline().rstrip().decode('utf-8')
inf = float('inf') ;mod = 10**9+7
mans = inf ;ans = 0 ;count = 0 ;pro = 1

n = int(input())
print((n+1)//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())
print(-(-N//2))

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

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

Solution (Python):

import sys

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

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

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





print((n+1)//2)

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

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

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

print(-(-n // 2))

Solution (Python):
from math import ceil
print(ceil(int(input())/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):
i = int(input())

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

Solution (Python):
def main() -> None:
    N = int(input())
    print((N + 1) // 2)


if __name__ == '__main__':
    main()

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 + 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())
print((N + 1) // 2)

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

if __name__ == "__main__":
    N = int(input())
    print((N+1)//2)

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

Solution (Python):
import sys
import math
from collections import defaultdict

sys.setrecursionlimit(10**7)
def input():
    return sys.stdin.readline()[:-1]

mod = 10**9 + 7

def I(): return int(input())
def LI(): return list(map(int, input().split()))
def LIR(row,col):
    if row <= 0:
        return [[] for _ in range(col)]
    elif col == 1:
        return [I() for _ in range(row)]
    else:
        read_all = [LI() for _ in range(row)]
        return map(list, zip(*read_all))



N = I()

print(math.ceil(N/2))

Solution (Python):
import sys
input = sys.stdin.readline
n=int(input())
print(-(-n//2))

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

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

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

Solution (Python):



def main():
    import sys
    input = sys.stdin.readline
    sys.setrecursionlimit(10**6)
    
    n = int(input())
    from math import ceil
    print(ceil(n/2))


if __name__ == '__main__':
    main()

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

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

    print((X + 1) // 2)

main()

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):
print(0--int(input())//2)

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

Solution (Python):

import sys
sys.setrecursionlimit(10**9)
INF=10**18
MOD=10**9+7
def input(): return sys.stdin.readline().rstrip()

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

if __name__ == '__main__':
    main()

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

print((N+1)//2)

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

Solution (Python):

from collections import defaultdict,deque
from heapq import heappush, heappop
from itertools import permutations
import sys
import math
import bisect
def LI(): return [int(x) for x in sys.stdin.readline().split()]
def I(): return int(sys.stdin.readline())
def LS():return [list(x) for x in sys.stdin.readline().split()]
def S():
    res = list(sys.stdin.readline())
    if res[-1] == "\n":
        return res[:-1]
    return res
def IR(n):
    return [I() for i in range(n)]
def LIR(n):
    return [LI() for i in range(n)]
def SR(n):
    return [S() for i in range(n)]
def LSR(n):
    return [LS() for i in range(n)]

sys.setrecursionlimit(1000000)
mod = 1000000007

def solve():
    n = I()
    print((n>>1)+(n&1))
    return


if __name__ == "__main__":
    solve()

Solution (Python):
import bisect
import cmath
import heapq
import itertools
import math
import operator
import os
import random
import re
import string
import sys
from collections import Counter, deque, defaultdict
from copy import deepcopy
from decimal import Decimal
from fractions import gcd
from functools import lru_cache, reduce
from operator import itemgetter, mul, add, xor

import numpy as np

if os.getenv("LOCAL"):
    sys.stdin = open("_in.txt", "r")

sys.setrecursionlimit(10 ** 9)
INF = float("inf")
IINF = 10 ** 18
MOD = 10 ** 9 + 7


N = int(sys.stdin.buffer.readline())
print((N +1)//2)

Solution (Python):


import sys
sys.setrecursionlimit(300000)


def solve(N: int):
    ret = (N + 1) // 2 
    print(ret)
    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
a = int(input())
print(math.ceil(a/2))

Solution (Python):
"""
じょえチャンネルおもしろいよ～～～
https://www.youtube.com/channel/UCRXsI3FL_kvaVL9zoolBfbQ
"""
print(0--int(input())//2)