Problem: Many people are aware of DMCA – Digital Millennium Copyright Act. But another recently proposed DMCA – Digital Millennium Calculation Act – is much less known.

In this problem you need to find a root of a number according to this new DMCA law.

Input

The input contains a single integer a (1 ≤ a ≤ 1000000).

Output

Output the result – an integer number.

Examples

Input


1


Output


1


Input


81


Output


9

Solution (in JAVA):

Solution:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.IOException;
import java.util.Arrays;
import java.util.StringTokenizer;

/* ------------ Theorems and Lemmas ------------ */

// Fermat's Little Theorem
// (1) ((a ** p) - a) % p = 0; if 'p' is prime
// (2) Further, if 'a % p != 0' (a and b should be coprime i.e. gcd(a, b) = 1), then ((a ** (p - 1)) - 1) % p = 0

/* -------------- End of theorems -------------- */

public class Solution {

	// Digit DP
	private static int digit;
	private static int times;
	private static StringBuilder number;
	private static int[][][] digitDP;
	// End

	protected static final String[] FACTS = new String[] { "", "", "2", "3", "322", "5", "53", "7", "7222", "7332" };

	public static void main(String[] args) {
		// long start = System.nanoTime();
		FastReader reader = new FastReader();
		PrintWriter writer = new PrintWriter(System.out);

		int t = 1;
		// t = reader.nextInt();
		StringBuilder ans = new StringBuilder("");
		while (t-- > 0) {
			char[] line = reader.next().toCharArray();
			int sum = 0;
			for (char c : line)
				sum += c - '0';
			while (sum >= 10) {
				line = String.valueOf(sum).toCharArray();
				sum = 0;
				for (char c : line)
					sum += c - '0';
			}
			ans.append(sum + "\n");
		}
		reader.close();
		writer.println(ans.toString().trim());
		// long end = System.nanoTime();
		// writer.format("Exec time: %.2f seconds.%n", (end - start) / 1e9);
		writer.close();
	}

	public static boolean prime(int n) {
		if (n < 2)
			return false;
		for (int i = 2; i * i <= n; ++i)
			if (n % i == 0)
				return false;
		return true;
	}

	public static int ddp(int n) {
		number = new StringBuilder(String.valueOf(n));
		digitDP = new int[12][12][2];
		for (int[][] a : digitDP)
			for (int[] b : a)
				Arrays.fill(b, -1);
		return call(0, 0, 0);
	}

	// Digit DP
	public static int call(int pos, int cnt, int f) {
		if (cnt > times)
			return 0;
		if (pos == number.length())
			return cnt == times ? 1 : 0;
		if (digitDP[pos][cnt][f] != -1)
			return digitDP[pos][cnt][f];
		int res = 0;
		int lmt = f == 0 ? number.charAt(pos) - '0' : 9;
		for (int dgt = 0; dgt <= lmt; ++dgt)
			if ((dgt == digit ? 1 + cnt : cnt) <= times)
				res += call(1 + pos, dgt == digit ? 1 + cnt : cnt, f == 0 && dgt < lmt ? 1 : f);
		digitDP[pos][cnt][f] = res;
		return res;
	}

	// Binary Exponentiation
	public static long binPow(long a, long n, long mod) {
		// Iterative approach
		a %= mod;
		long result = 1;
		while (n > 0l) {
			if ((n & 1l) != 0l)
				result = result * a % mod;
			a = a * a % mod;
			n >>= 1l;
		}
		return result;

		// Recursive approach
		/*
		 * if (n == 0l) return 1l; long res = binpow(a, n / 2, mod); if ((n & 1l) != 0l)
		 * return ((res % mod) * (res % mod) * (a % mod)) % mod; else return ((res %
		 * mod) * (res % mod)) % mod;
		 */
	}

	// Division under modulo
	public static long modInv(long x, long mod) {
		return binPow(x, mod - 2l, mod);
	}

	// GCD
	public static int gcd(int a, int b) {
		return b == 0 ? a : gcd(b, a % b);
	}

	static class FastReader {
		BufferedReader br;
		StringTokenizer st;

		public FastReader() {
			br = new BufferedReader(new InputStreamReader(System.in));
		}

		String next() {
			while (st == null || !st.hasMoreElements()) {
				try {
					st = new StringTokenizer(br.readLine().trim());
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			return st.nextToken();
		}

		int nextInt() {
			return Integer.parseInt(next());
		}

		long nextLong() {
			return Long.parseLong(next());
		}

		float nextFloat() {
			return Float.parseFloat(next());
		}

		double nextDouble() {
			return Double.parseDouble(next());
		}

		int[] readArray(int size) {
			int[] ar = new int[size];
			for (int i = 0; i < size; ++i)
				ar[i] = nextInt();
			return ar;
		}

		void close() {
			try {
				br.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}