//--- pA ---//
import java.util.*;
import java.lang.*;
import java.io.*;
public class Main {
	public static void main (String[] args) throws java.lang.Exception {
		new Solution();
	}
}
class Solution {
	Reader reader;
	public Solution () {
		reader = new Reader();
		while (reader.hasNext()) {
			run_case();
		}
	}
	private void run_case() {
		int N = ni();
		// System.out.println("N = " + N);
		int res = (int)Math.ceil(1.0 * N / 2);
		System.out.println(res);
		return;
	}
	private int ni() {return Integer.parseInt(reader.next());}
	private String ns() {return reader.next();}
}

class Reader {
	BufferedReader br;
	StringTokenizer st;
	public Reader(){
		try {
			br = new BufferedReader(new InputStreamReader(System.in));
			st = new StringTokenizer(br.readLine());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	public String next() {
		if (st.hasMoreTokens()) return st.nextToken();
		try {
			st = new StringTokenizer(br.readLine());
		} catch (Exception e) {
			e.printStackTrace();
		}
		return st.nextToken();
	}
	public boolean hasNext() {
		try {
			return st.hasMoreTokens();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return false;
	}
} import java.util.*; util.* java import java.lang.*; lang.* java import java.io.*; io.* java public class Main {
	public static void main (String[] args) throws java.lang.Exception {
		new Solution();
	}
} Main public static void main (String[] args) throws java.lang.Exception {
		new Solution();
	} main {
		new Solution();
	} new Solution() String[] args args class Solution {
	Reader reader;
	public Solution () {
		reader = new Reader();
		while (reader.hasNext()) {
			run_case();
		}
	}
	private void run_case() {
		int N = ni();
		// System.out.println("N = " + N);
		int res = (int)Math.ceil(1.0 * N / 2);
		System.out.println(res);
		return;
	}
	private int ni() {return Integer.parseInt(reader.next());}
	private String ns() {return reader.next();}
} Solution Reader reader; reader public Solution () {
		reader = new Reader();
		while (reader.hasNext()) {
			run_case();
		}
	} Solution {
		reader = new Reader();
		while (reader.hasNext()) {
			run_case();
		}
	} reader = new Reader() reader new Reader() while (reader.hasNext()) {
			run_case();
		} reader.hasNext() reader.hasNext reader {
			run_case();
		} run_case() run_case private void run_case() {
		int N = ni();
		// System.out.println("N = " + N);
		int res = (int)Math.ceil(1.0 * N / 2);
		System.out.println(res);
		return;
	} run_case {
		int N = ni();
		// System.out.println("N = " + N);
		int res = (int)Math.ceil(1.0 * N / 2);
		System.out.println(res);
		return;
	} int N = ni(); N ni() ni int res = (int)Math.ceil(1.0 * N / 2); res (int)Math.ceil(1.0 * N / 2) Math.ceil Math 1.0 * N / 2 1.0 * N 1.0 N 2 System.out.println(res) System.out.println System.out System System.out res return; private int ni() {return Integer.parseInt(reader.next());} ni {return Integer.parseInt(reader.next());} return Integer.parseInt(reader.next()); Integer.parseInt(reader.next()) Integer.parseInt Integer reader.next() reader.next reader private String ns() {return reader.next();} ns {return reader.next();} return reader.next(); reader.next() reader.next reader class Reader {
	BufferedReader br;
	StringTokenizer st;
	public Reader(){
		try {
			br = new BufferedReader(new InputStreamReader(System.in));
			st = new StringTokenizer(br.readLine());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	public String next() {
		if (st.hasMoreTokens()) return st.nextToken();
		try {
			st = new StringTokenizer(br.readLine());
		} catch (Exception e) {
			e.printStackTrace();
		}
		return st.nextToken();
	}
	public boolean hasNext() {
		try {
			return st.hasMoreTokens();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return false;
	}
} Reader BufferedReader br; br StringTokenizer st; st public Reader(){
		try {
			br = new BufferedReader(new InputStreamReader(System.in));
			st = new StringTokenizer(br.readLine());
		} catch (Exception e) {
			e.printStackTrace();
		}
	} Reader {
		try {
			br = new BufferedReader(new InputStreamReader(System.in));
			st = new StringTokenizer(br.readLine());
		} catch (Exception e) {
			e.printStackTrace();
		}
	} try {
			br = new BufferedReader(new InputStreamReader(System.in));
			st = new StringTokenizer(br.readLine());
		} catch (Exception e) {
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		} Exception e {
			e.printStackTrace();
		} e.printStackTrace() e.printStackTrace e {
			br = new BufferedReader(new InputStreamReader(System.in));
			st = new StringTokenizer(br.readLine());
		} br = new BufferedReader(new InputStreamReader(System.in)) br new BufferedReader(new InputStreamReader(System.in)) st = new StringTokenizer(br.readLine()) st new StringTokenizer(br.readLine()) public String next() {
		if (st.hasMoreTokens()) return st.nextToken();
		try {
			st = new StringTokenizer(br.readLine());
		} catch (Exception e) {
			e.printStackTrace();
		}
		return st.nextToken();
	} next {
		if (st.hasMoreTokens()) return st.nextToken();
		try {
			st = new StringTokenizer(br.readLine());
		} catch (Exception e) {
			e.printStackTrace();
		}
		return st.nextToken();
	} if (st.hasMoreTokens()) return st.nextToken(); st.hasMoreTokens() st.hasMoreTokens st return st.nextToken(); st.nextToken() st.nextToken st try {
			st = new StringTokenizer(br.readLine());
		} catch (Exception e) {
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		} Exception e {
			e.printStackTrace();
		} e.printStackTrace() e.printStackTrace e {
			st = new StringTokenizer(br.readLine());
		} st = new StringTokenizer(br.readLine()) st new StringTokenizer(br.readLine()) return st.nextToken(); st.nextToken() st.nextToken st public boolean hasNext() {
		try {
			return st.hasMoreTokens();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return false;
	} hasNext {
		try {
			return st.hasMoreTokens();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return false;
	} try {
			return st.hasMoreTokens();
		} catch (Exception e) {
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		} Exception e {
			e.printStackTrace();
		} e.printStackTrace() e.printStackTrace e {
			return st.hasMoreTokens();
		} return st.hasMoreTokens(); st.hasMoreTokens() st.hasMoreTokens st return false; false public class Main {
	public static void main (String[] args) throws java.lang.Exception {
		new Solution();
	}
} public class Main {
	public static void main (String[] args) throws java.lang.Exception {
		new Solution();
	}
} Main
//--- pA ---//
import java.util.*;
import java.lang.*;
import java.io.*;
public class Main {
	public static void main (String[] args) throws java.lang.Exception {
		new Solution();
	}
}
class Solution {
	Reader reader;
	public Solution () {
		reader = new Reader();
		while (reader.hasNext()) {
			run_case();
		}
	}
	private void run_case() {
		int N = ni();
		// System.out.println("N = " + N);
		int res = (int)Math.ceil(1.0 * N / 2);
		System.out.println(res);
		return;
	}
	private int ni() {return Integer.parseInt(reader.next());}
	private String ns() {return reader.next();}
}

class Reader {
	BufferedReader br;
	StringTokenizer st;
	public Reader(){
		try {
			br = new BufferedReader(new InputStreamReader(System.in));
			st = new StringTokenizer(br.readLine());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	public String next() {
		if (st.hasMoreTokens()) return st.nextToken();
		try {
			st = new StringTokenizer(br.readLine());
		} catch (Exception e) {
			e.printStackTrace();
		}
		return st.nextToken();
	}
	public boolean hasNext() {
		try {
			return st.hasMoreTokens();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return false;
	}
}
