We have a grid with H rows and W columns, where all the squares are initially white.

You will perform some number of painting operations on the grid. In one operation, you can do one of the following two actions:

* Choose one row, then paint all the squares in that row black.
* Choose one column, then paint all the squares in that column black.



At least how many operations do you need in order to have N or more black squares in the grid? It is guaranteed that, under the conditions in Constraints, having N or more black squares is always possible by performing some number of operations.

Constraints

* 1 \leq H \leq 100
* 1 \leq W \leq 100
* 1 \leq N \leq H \times W
* All values in input are integers.

Input

Input is given from Standard Input in the following format:


H
W
N


Output

Print the minimum number of operations needed.

Examples

Input

3
7
10


Output

2


Input

14
12
112


Output

8


Input

2
100
200


Output

2
import java.util.Scanner;


public class Main {


	public static void main(String[] args) {

//		long ans = 0;
//		double ans = 0.0;
		int ans = 0;
//		String ans = "";

		Scanner sc = new Scanner(System.in);
//		double waru = 1000000007;


//		long n = sc.nextLong();
//		long m = sc.nextLong();
//		long k = sc.nextLong();

		int n = sc.nextInt();
		int m = sc.nextInt();
		int k = sc.nextInt();
//		int v = sc.nextInt();
//		String s = sc.next();


//		String string = sc.next();
//		StringBuilder s = new StringBuilder(string);

		boolean f = false;

//		String[] s = new String[n];

//		int[] a = new int[n];
//		long[] a = new long[n];
//
//		int[][] a = new int[n][m];



//		for (int i = 0; i < h; i++) {
//			for(int j = 0; j < w; j++) {
//				a[i][j] = sc.nextInt();
//			}
//		}

//		for (int i = 0; i < n; i++) {
//			s[i] = sc.next();
//			a[i] = sc.nextLong();
//		}


		int tmp = k;
		int tatecount = 0;
		int yokocount = 0;

		while(!f) {
			ans++;
			if(n - yokocount > m - tatecount) {
				tmp = tmp - (n - yokocount);
				tatecount++;
			} else {
				tmp = tmp - (m - tatecount);
				yokocount++;
			}

			if(tmp <= 0) {
				f = true;
				break;

			}
		}





		System.out.println(ans);

		sc.close();
	}


}