macro_rules! input {
    (source = $s:expr, $($r:tt)*) => {
        let mut iter = $s.split_whitespace();
        input_inner!{iter, $($r)*}
    };
    ($($r:tt)*) => {
        let mut s = {
            use std::io::Read;
            let mut s = String::new();
            std::io::stdin().read_to_string(&mut s).unwrap();
            s
        };
        let mut iter = s.split_whitespace();
        input_inner!{iter, $($r)*}
    };
}

macro_rules! input_inner {
    ($iter:expr) => {};
    ($iter:expr, ) => {};

    ($iter:expr, $var:ident : $t:tt $($r:tt)*) => {
        let $var = read_value!($iter, $t);
        input_inner!{$iter $($r)*}
    };
}

macro_rules! read_value {
    ($iter:expr, ( $($t:tt),* )) => {
        ( $(read_value!($iter, $t)),* )
    };

    ($iter:expr, [ $t:tt ; $len:expr ]) => {
        (0..$len).map(|_| read_value!($iter, $t)).collect::<Vec<_>>()
    };

    ($iter:expr, chars) => {
        read_value!($iter, String).chars().collect::<Vec<char>>()
    };

    ($iter:expr, usize1) => {
        read_value!($iter, usize) - 1
    };

    ($iter:expr, $t:ty) => {
        $iter.next().unwrap().parse::<$t>().expect("Parse error")
    };
}
fn main() {
    input!{
        n: u32,
        c: [(u32, u32, u32); n],
    };
    let mut pt:u32 = 0;
    let mut px:u32 = 0;
    let mut py: u32 = 0;
    for (t, x, y) in c{
        let time = t - pt;
        let dist = if x > px { x - px} else { px - x} + if y > py { y - py}  else { py - y};
        if !(time % 2 == dist % 2) || (dist > time){
            println!("No");
            return;
        }
        px = x;
        py = y;
        pt = t;
    }
    println!("Yes");
}


use std::io::prelude::*;
use std::str::FromStr;
pub struct Scanner<R: Read>(R);
impl<R: Read> Scanner<R> {
    pub fn new(reader: R) -> Self {
        Self(reader)
    }
    pub fn read<T: FromStr>(&mut self) -> T {
        let token = self
            .0
            .by_ref()
            .bytes()
            .map(|b| b.unwrap())
            .skip_while(|&b| (b as char).is_whitespace())
            .take_while(|&b| !(b as char).is_whitespace())
            .collect::<Vec<u8>>();
        unsafe { std::str::from_utf8_unchecked(token.as_slice()) }
            .parse()
            .ok()
            .expect("Can't parse it.")
    }
    pub fn vec<T: FromStr>(&mut self, n: usize) -> Vec<T> {
        (0..n).map(|_| self.read()).collect()
    }
    pub fn chars(&mut self) -> Vec<char> {
        self.read::<String>().chars().collect()
    }
}
fn main() {
    let (stdin, stdout) = (std::io::stdin(), std::io::stdout());
    let mut sc = Scanner::new(stdin.lock());
    let mut out = std::io::BufWriter::new(stdout.lock());
    solve(&mut sc, &mut out);
    out.flush().ok().unwrap();
}
fn solve(sc: &mut Scanner<std::io::StdinLock>, out: &mut std::io::BufWriter<std::io::StdoutLock>) {
    let N: usize = sc.read();
    let mut A = Vec::new();
    for _ in 0..N {
        let tup: (i32, i32, i32) = (sc.read(), sc.read(), sc.read());
        A.push(tup);
    }

    let mut ans = true;
    let mut ct = 0;
    let mut cx = 0;
    let mut cy = 0;
    for &(t, x, y) in A.iter() {
        let dist = (x - cx).abs() + (y - cy).abs();
        ans &= dist <= t - ct && ((t - ct) & 1) == (dist & 1);
        ct = t;
        cx = x;
        cy = y;
    }
    println!("{}", if ans { "YES" } else { "NO" });
}


use std::io::prelude::*;
use std::str::FromStr;
pub struct Scanner<R: Read>(R);
impl<R: Read> Scanner<R> {
    pub fn new(reader: R) -> Self {
        Self(reader)
    }
    pub fn read<T: FromStr>(&mut self) -> T {
        let token = self
            .0
            .by_ref()
            .bytes()
            .map(|b| b.unwrap())
            .skip_while(|&b| (b as char).is_whitespace())
            .take_while(|&b| !(b as char).is_whitespace())
            .collect::<Vec<u8>>();
        unsafe { std::str::from_utf8_unchecked(token.as_slice()) }
            .parse()
            .ok()
            .expect("Can't parse it.")
    }
    pub fn vec<T: FromStr>(&mut self, n: usize) -> Vec<T> {
        (0..n).map(|_| self.read()).collect()
    }
    pub fn chars(&mut self) -> Vec<char> {
        self.read::<String>().chars().collect()
    }
}
fn main() {
    let (stdin, stdout) = (std::io::stdin(), std::io::stdout());
    let mut sc = Scanner::new(stdin.lock());
    let mut out = std::io::BufWriter::new(stdout.lock());
    solve(&mut sc, &mut out);
    out.flush().ok().unwrap();
}
fn solve(sc: &mut Scanner<std::io::StdinLock>, out: &mut std::io::BufWriter<std::io::StdoutLock>) {
    let N: usize = sc.read();
    let mut A = Vec::new();
    for _ in 0..N {
        let tup: (i32, i32, i32) = (sc.read(), sc.read(), sc.read());
        A.push(tup);
    }

    let mut ans = true;
    let mut ct = 0;
    let mut cx = 0;
    let mut cy = 0;
    for &(t, x, y) in A.iter() {
        let dist = (x - cx).abs() + (y - cy).abs();
        ans = dist <= t - ct && ((t - ct) & 1) == (dist & 1);
        ct = t;
        cx = x;
        cy = y;
    }
    println!("{}", if ans { "YES" } else { "NO" });
}


use std::io::prelude::*;
use std::str::FromStr;
pub struct Scanner<R: Read>(R);
impl<R: Read> Scanner<R> {
    pub fn new(reader: R) -> Self {
        Self(reader)
    }
    pub fn read<T: FromStr>(&mut self) -> T {
        let token = self
            .0
            .by_ref()
            .bytes()
            .map(|b| b.unwrap())
            .skip_while(|&b| (b as char).is_whitespace())
            .take_while(|&b| !(b as char).is_whitespace())
            .collect::<Vec<u8>>();
        unsafe { std::str::from_utf8_unchecked(token.as_slice()) }
            .parse()
            .ok()
            .expect("Can't parse it.")
    }
    pub fn vec<T: FromStr>(&mut self, n: usize) -> Vec<T> {
        (0..n).map(|_| self.read()).collect()
    }
    pub fn chars(&mut self) -> Vec<char> {
        self.read::<String>().chars().collect()
    }
}
fn main() {
    let (stdin, stdout) = (std::io::stdin(), std::io::stdout());
    let mut sc = Scanner::new(stdin.lock());
    let mut out = std::io::BufWriter::new(stdout.lock());
    solve(&mut sc, &mut out);
    out.flush().ok().unwrap();
}
fn solve(sc: &mut Scanner<std::io::StdinLock>, out: &mut std::io::BufWriter<std::io::StdoutLock>) {
    let N: usize = sc.read();
    let mut A = Vec::new();
    for _ in 0..N {
        let tup: (i32, i32, i32) = (sc.read(), sc.read(), sc.read());
        A.push(tup);
    }

    let mut ct = 0;
    let mut cx = 0;
    let mut cy = 0;
    for &(t, x, y) in A.iter() {
        let dist = (x - cx).abs() + (y - cy).abs();
        if dist <= t - ct && ((t - ct - dist) & 1) == 0 {
            ct = t;
            cx = x;
            cy = y;
        } else {
            println!("NO");
            return;
        }
    }
    println!("YES");
}


func readInts() -> [Int] {
    return readLine()!.split(separator: " ").map { Int($0)! }
}

func main() {
    let N = Int(readLine()!)!
    var (t, x, y) = (0, 0, 0)
    for _ in 1...N {
        let line = readInts()
        let t_ = line[0]
        let x_ = line[1]
        let y_ = line[2]
        let dt = t_ - t
        let dx = abs(x_ - x)
        let dy = abs(y_ - y)
        if dt < dx + dy {
            print("No")
            return
        }
        if t_ % 2 != (x_ + y_) % 2 {
            print("No")
            return
        }
        (t, x, y) = (t_, x_, y_)
    }
    print("Yes")
}

main()


func readInts() -> [Int] {
    return readLine()!.split(separator: " ").map { Int($0)! }
}

func main() {
    let N = Int(readLine()!)!

    var (t_, x_, y_) = (0, 0, 0)
    for _ in 1...N {
        let line = readInts()
        let t = line[0]
        let x = line[1]
        let y = line[2]

        let dT = t - t_
        let dX = abs(x - x_)
        let dY = abs(y - y_)

        if dT < dX + dY {
            print("No")
            return
        }

        if dT % 2 != (dX + dY) % 2 {
            print("No")
            return
        }

        (t_, x_, y_) = (t, x, y)
    }

    print("Yes")
}

main()


let N = Int(readLine()!)!
var ans = "Yes"
var preT = 0
var preX = 0
var preY = 0
for _ in 0..<N {
    let input = readLine()!.characters.split(" ").map{Int(String($0))!}
    let (t, x, y) = (input[0], input[1], input[2])
    let dist = abs(x - preX) + abs(y - preY)
    let time = t - preT
    let overTime = time - dist
    if overTime < 0 || overTime % 2 > 0 {
        ans = "No"
    }
    preT = t
    preX = x
    preY = y
}
print(ans)


// 🐋💭
import Foundation

func readInts() -> [Int] {
    return readLine()!.split(separator: " ").map { Int($0)! }
}

func readInt() -> Int {
    return Int(readLine()!)!
}

func readDoubles () -> [Double] {
    return readLine()!.split(separator: " ").map { Double($0)! }
}

func readDouble() -> Double{
    return Double(readLine()!)!
}

func readLines() -> [String] {
    return readLine()!.map { String($0) }
}
///最大公約数を返す
func gcd(_ m:Int, _ n:Int) -> Int {
    if n == 0 {return m}
    return gcd(n, m % n)
}

///最大公約数を返す
func gcd(_ array: [Int]) -> Int {
    var value = array[0]
    if array.count > 1 {
        for i in 1..<array.count {
            value = gcd(value, array[i])
        }
    }
    return value
}

///最小公倍数を返す
func lcm(_ m:Int, _ n:Int) -> Int {
    return m * n / gcd(m, n)
}

///素数判定(試し割り)
func isPrime(_ x:Int) -> Bool {
    if x <= 1 || x % 2 == 0 { return false }
    if x == 2 { return true }
    for i in stride(from: 3, to: Int(ceil(sqrt(Double(x)))), by: 2){
        if x % i == 0 {
            return false
        }
    }
    return true
}

//https://program-life.com/669
///実行速度の計測
func exectionTime(action: () -> Void) {
    let startDate = Date()
    action()
    let endDate = Date()
    print(endDate.timeIntervalSince(startDate))
}

//https://riptutorial.com/ja/swift/example/14738/インデックスを知らずに配列から要素を削除する
extension Array where Element: Equatable {

    mutating func remove(_ element: Element) {
        _ = firstIndex(of: element).flatMap {
            self.remove(at: $0)
        }
    }
}

func binarySearch(rifgt:Int, key:Int, ary:[String]) -> Int{
    var left = 0
    var right = rifgt

    while abs(right - left) > 1 {
        let mid = left + (right - left) / 2

        if Int(ary[mid])! < key {
            left = mid

        } else {
            right = mid
        }
    }
    return left
}

func arrangement (prev:String, ary:[String], returnVal:[String]) -> [String] {
    var returnVal = returnVal
    if ary.count == 0 {
        returnVal.append(prev)
        return returnVal
    }

    for s in ary {
        let wprev = prev + s
        var wary = ary
        wary.remove(s)
        returnVal = arrangement(prev: wprev, ary: wary, returnVal: returnVal)
    }
    return returnVal
}
// https://algo-logic.info/divisor/
/// 約数の配列を返す
func divisor(_ n:Int) -> [Int] {
    var ret = [Int]()
    var i = 1
    while i * i <= n {
        if n % i == 0 {
            ret.append(i)
            if i * i != n {
                ret.append(n / i)
            }
        }
        i += 1
    }
    return ret
}

func main() {
    let n = readInt()
    var aryTXY = [[Int]](repeating: [Int](repeating: 0, count: 3), count: 5)
    for i in 0..<n {
        aryTXY[i] = readInts()
    }
    //＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿ここまで入力
    var isCanTrance = true
    var count = 0
    var diffPoint = 0
    var time = 0

    while isCanTrance && count < n {
        diffPoint = abs(aryTXY[count][1] + aryTXY[count][2] - diffPoint)
        time = abs(time - abs(aryTXY[count][0]))

        if time < diffPoint || time % 2 != diffPoint % 2 {
            isCanTrance = false
        }

        count += 1
    }

    print(isCanTrance ? "Yes": "No")
}
main()


const main = (input) => {
    const args = input.split('\n');
    const N = parseInt(args[0], 10);
    const nums = args.slice(1, N + 1);
    const isValid = nums.every((n) => {
        const ns = n.split(' ');
        const t = parseInt(ns[0], 10),
            x = parseInt(ns[1], 10),
            y = parseInt(ns[2], 10);
        const sum = x + y;

        return (t >= sum) && ((t % 2) === (sum % 2));
    });

    if (isValid) {
        console.log('Yes');
    } else {
        console.log('No');
    }
}
main(require('fs').readFileSync('/dev/stdin', 'utf8'));


"use strict"
let fs = require('fs');
let input = fs.readFileSync("/dev/stdin", "utf8").split(/\n/);

const N = +input[0];
let currentCoordinate = { x: 0, y: 0 };
let currentTime = 0;
let ans = 'Yes';

for(let i=1; i<=N; i++ ) {
  const row = input[i].split(' ');
  const t = +row[0] - currentTime;
  let move = Math.abs( +row[1] - currentCoordinate.x) + Math.abs(+row[2] - currentCoordinate.y);
  if( !( t >= move && (t - move) % 2 === 0) ) {
    ans = 'No';
    break;
  }
  currentCoordinate = { x: +row[1], y: +row[2] };
  currentTime += t;
}

console.log(ans);


function main(input) {
  input = input.split("\n");
  const n = Number(input[0]);
  let prevX = 0;
  let prevY = 0;
  let prevT = 0;
  let result = "Yes";
  for (let i = 1; i <= n; i++) {
    const [t, x, y] = input[i].split(" ").map(n => Number(n));
    const diffT = t - prevT;
    const distance = Math.abs(x - prevX) + Math.abs(y - prevY);
    if (diffT < distance || diffT%2 !== distance%2) {
      	result = "No";
        break;
    }
  }
  console.log(result);
}
main(require("fs").readFileSync("/dev/stdin", "utf8"));


const lines: string[] = [];
const reader = require("readline").createInterface({
  input: process.stdin,
  output: process.stdout,
});
reader.on("line", function (line: string) {
  lines.push(line);
});

function reverseString(str: string) {
  return str.split("").reverse().join("");
}

reader.on("close", function () {
  const num = reverseString(lines[0] as string);
  const actionList: number[][] = [];
  for (let i = 1; i < lines.length; i++) {
    let str = lines[i].split(" ");
    actionList.push([Number(str[0]), Number(str[1]), Number(str[2])]);
  }

  let res = true;

  actionList.some((action, index): any => {
    if (index === 0) {
      if (!judge(action[0], 0, 0, action[1], action[2])) {
        res = false;
        return true;
      }
    } else {
      if (
        !judge(
          action[0],
          actionList[index - 1][1],
          actionList[index - 1][2],
          action[1],
          action[2]
        )
      ) {
        return true;
      }
    }
  });

  //   console.log(num, actionList);
  console.log(res ? "Yes" : "No");
});

function judge(
  time: number,
  nowX: number,
  nowY: number,
  ansX: number,
  ansY: number
): boolean {
  //   console.log(time, nowX, nowY, ansX, ansY);
  const dist = ansX + ansY - nowX - nowY;
  //   console.log("dist", dist);
  if (time < dist) {
    return false;
  }
  if (dist % 2 !== time % 2) {
    return false;
  }

  if (time === 0) {
    return nowX === ansX && nowY === ansY;
  } else {
    const nextTime = time - 1;
    const xMinus =
      nowX === 0 ? false : judge(nextTime, nowX - 1, nowY, ansX, ansY);
    const yMinus =
      nowY === 0 ? false : judge(nextTime, nowX, nowY - 1, ansX, ansY);

    return (
      judge(nextTime, nowX + 1, nowY, ansX, ansY) ||
      judge(nextTime, nowX, nowY + 1, ansX, ansY) ||
      xMinus ||
      yMinus
    );
  }
}


const lines: string[] = [];
const reader = require("readline").createInterface({
  input: process.stdin,
  output: process.stdout,
});
reader.on("line", function (line: string) {
  lines.push(line);
});

function reverseString(str: string) {
  return str.split("").reverse().join("");
}

reader.on("close", function () {
  const num = reverseString(lines[0] as string);
  const actionList: number[][] = [];
  for (let i = 1; i < lines.length; i++) {
    let str = lines[i].split(" ");
    actionList.push([Number(str[0]), Number(str[1]), Number(str[2])]);
  }

  let res = true;

  actionList.some((action, index): any => {
    if (index === 0) {
      if (!judge(action[0], 0, 0, action[1], action[2])) {
        res = false;
        return true;
      }
    } else {
      if (
        !judge(
          action[0],
          actionList[index - 1][1],
          actionList[index - 1][2],
          action[1],
          action[2]
        )
      ) {
        return true;
      }
    }
  });

  //   console.log(num, actionList);
  console.log(res ? "Yes" : "No");
});

function judge(
  time: number,
  nowX: number,
  nowY: number,
  ansX: number,
  ansY: number
): boolean {
  //   console.log(time, nowX, nowY, ansX, ansY);

  if (time < ansX + ansY) {
    return false;
  }
  if ((ansX + ansY) % 2 !== time % 2) {
    return false;
  }

  if (time === 0) {
    return nowX === ansX && nowY === ansY;
  } else {
    const nextTime = time - 1;
    const xMinus =
      nowX === 0 ? judge(nextTime, nowX - 1, nowY, ansX, ansY) : false;
    const yMinus =
      nowY === 0 ? judge(nextTime, nowX, nowY - 1, ansX, ansY) : false;

    return (
      judge(nextTime, nowX + 1, nowY, ansX, ansY) ||
      judge(nextTime, nowX, nowY + 1, ansX, ansY) ||
      xMinus ||
      yMinus
    );
  }
}


const lines: string[] = [];
const reader = require("readline").createInterface({
  input: process.stdin,
  output: process.stdout,
});
reader.on("line", function (line: string) {
  lines.push(line);
});

function reverseString(str: string) {
  return str.split("").reverse().join("");
}

reader.on("close", function () {
  const num = reverseString(lines[0] as string);
  const actionList: number[][] = [];
  for (let i = 1; i < lines.length; i++) {
    let str = lines[i].split(" ");
    actionList.push([Number(str[0]), Number(str[1]), Number(str[2])]);
  }

  let res = true;

  actionList.some((action, index): any => {
    if (index === 0) {
      if (!judge(action[0], 0, 0, action[1], action[2])) {
        res = false;
        return true;
      }
    } else {
      if (
        !judge(
          action[0],
          actionList[index - 1][1],
          actionList[index - 1][2],
          action[1],
          action[2]
        )
      ) {
        return true;
      }
    }
  });

  //   console.log(num, actionList);
  console.log(res ? "Yes" : "No");
});

function judge(
  time: number,
  nowX: number,
  nowY: number,
  ansX: number,
  ansY: number
): boolean {
  //   console.log(time, nowX, nowY, ansX, ansY);

  if (time === 0) {
    return nowX === ansX && nowY === ansY;
  } else {
    const nextTime = time - 1;
    const xMinus =
      nowX === 0 ? judge(nextTime, nowX - 1, nowY, ansX, ansY) : false;
    const yMinus =
      nowY === 0 ? judge(nextTime, nowX, nowY - 1, ansX, ansY) : false;

    return (
      judge(nextTime, nowX + 1, nowY, ansX, ansY) ||
      judge(nextTime, nowX, nowY + 1, ansX, ansY) ||
      xMinus ||
      yMinus
    );
  }
}


d, n = map(int, input().split())
print(100**d*n if n != 100 else 100**d*101)


D, N = map(int, input().split())
if N == 100:
    N += 1
print(100 ** D * N)


d,n=map(int,input().split())
if n != 100:
    print(n*(100**d))
else:
    print(101*(100**d))


#-*-coding:utf-8-*-
import sys
input=sys.stdin.readline

def main():
    d,n = map(int,input().split())

    if d==0:
        print(n)
    elif d==1:
        print(n*100)
    else:
        print(n*10000)

if __name__=="__main__":
    main()


def main():
    D, N = map(int, input().split())
    if D == 0:
        if N <= 99:
            print(N)
        else:
            print(N+1)
    elif D == 1:
        print(100*N)
    else:
        print(10000*N)

if __name__ == "__main__":
    main()


D, N = map(int, input().split())
if  D == 0:
    if N == 100:
        print(101)
    else:
        print(N)

if D == 1:
    if N == 100:
        print(101*100)
    else:
        print(N*100)

if D == 2:
    if N == 100:
        print(101*100**2)
    else:
        print(N**100**2)


import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.InputMismatchException;
import java.util.Random;

public class Main
{
	InputStream is;
	PrintWriter out;
	String INPUT = "";

	void solve()
	{
		long D = ni(), N = ni();
		System.out.print((int) (Math.pow(100, D) * (N + N / 100)));
	}

	void run() throws Exception
	{
		is = INPUT.isEmpty() ? System.in : new ByteArrayInputStream(INPUT.getBytes());
		out = new PrintWriter(System.out);

		long s = System.currentTimeMillis();
		solve();
		out.flush();
		if(!INPUT.isEmpty())tr(System.currentTimeMillis()-s+"ms");
	}

	public static void main(String[] args) throws Exception
	{ new Main().run(); }

	private byte[] inbuf = new byte[1024];
	public int lenbuf = 0, ptrbuf = 0;

	private int readByte()
	{
		if(lenbuf == -1)throw new InputMismatchException();
		if(ptrbuf >= lenbuf)
		{
			ptrbuf = 0;
			try
			{ lenbuf = is.read(inbuf); }
			catch (IOException e)
			{ throw new InputMismatchException(); }
			if(lenbuf <= 0)return -1;
		}
		return inbuf[ptrbuf++];
	}

	private boolean isSpaceChar(int c)
	{ return !(c >= 33 && c <= 126); }
	private int skip()
	{ int b; while((b = readByte()) != -1 && isSpaceChar(b)); return b; }

	private double nd()
	{ return Double.parseDouble(ns()); }
	private char nc()
	{ return (char)skip(); }

	private String ns()
	{
		int b = skip();
		StringBuilder sb = new StringBuilder();
		while(!(isSpaceChar(b)))
		{ // when nextLine, (isSpaceChar(b) && b != ' ')
			sb.appendCodePoint(b);
			b = readByte();
		}
		return sb.toString();
	}

	private String nsl()
	{
		int b = skip();
		StringBuilder sb = new StringBuilder();
		while(!(isSpaceChar(b) && b != ' '))
		{ // when nextLine, (isSpaceChar(b) && b != ' ')
			sb.appendCodePoint(b);
			b = readByte();
		}
		return sb.toString();
	}

	private char[] ns(int n)
	{
		char[] buf = new char[n];
		int b = skip(), p = 0;
		while(p < n && !(isSpaceChar(b)))
		{
			buf[p++] = (char)b;
			b = readByte();
		}
		return n == p ? buf : Arrays.copyOf(buf, p);
	}

	private char[][] nm(int n, int m)
	{
		char[][] map = new char[n][];
		for(int i = 0;i < n;i++)map[i] = ns(m);
		return map;
	}

	private int[] na(int n)
	{
		int[] a = new int[n];
		for(int i = 0;i < n;i++)a[i] = ni();
		return a;
	}

	private int ni()
	{
		int num = 0, b;
		boolean minus = false;
		while((b = readByte()) != -1 && !((b >= '0' && b <= '9') || b == '-'));
		if(b == '-')
		{
			minus = true;
			b = readByte();
		}

		while(true)
		{
			if(b >= '0' && b <= '9')
			{
				num = num * 10 + (b - '0');
			}else
			{
				return minus ? -num : num;
			}
			b = readByte();
		}
	}

	private long nl()
	{
		long num = 0;
		int b;
		boolean minus = false;
		while((b = readByte()) != -1 && !((b >= '0' && b <= '9') || b == '-'));
		if(b == '-')
		{
			minus = true;
			b = readByte();
		}

		while(true){
			if(b >= '0' && b <= '9')
			{
				num = num * 10 + (b - '0');
			}else
			{
				return minus ? -num : num;
			}
			b = readByte();
		}
	}

	private static void tr(Object... o)
	{ System.out.println(Arrays.deepToString(o)); }
}


import java.io.PrintWriter;
import java.lang.reflect.Array;
import java.util.*;
import java.io.*;
import java.util.function.*;
import java.util.stream.Collectors.*;
public class Main {

    public static void main(String[] args) { new Main().stream(); }
    final IO io = new IO();
    final PrintWriter out = new PrintWriter(System.out);
    final int INF = Integer.MAX_VALUE/2;
    void stream(){ solve(); out.flush(); }
    /// ********** 本体 ********** ///

    void solve() {
        int D = io.Int();
        int N = io.Int();
        int ans = N != 100 ? (int)Math.pow(100, D) * N : (int)Math.pow(100, D) * (N+1) ;
        out.println(ans);
    }
    void FOR(int a, int b, Consumer<Integer>act) { for(int i = a; i < b; ++i) act.accept(i); }
    void REP(int a, Consumer<Integer>act) { FOR(0, a, act); }
}
/// ********** その他 ********** ///

/// ********** その他 ********** ///

class IO{
    private final InputStream in = System.in;
    private final byte[] buffer  = new byte[1<<12];
    private int   ptr = 0, buffLen = 0;
    private boolean hasNextByte()          {
        if(ptr < buffLen) return true;
        ptr = 0;
        try{ buffLen = in.read(buffer); } catch (IOException e){ e.printStackTrace(); }
        return buffLen > 0;
    }
    private int     readByte()             { return hasNextByte()? buffer[ptr++] : -1; }
    private boolean isPrintableChar(int c) { return 33 <= c && c <= 126; } //ASCII
    private void    skipUnprintable()      { while (hasNextByte() && !isPrintableChar(buffer[ptr])) ptr++; }
    private boolean hasNext()              { skipUnprintable(); return hasNextByte();}
    private String  next()                 {
        if(!hasNext()) throw new NoSuchElementException();
        StringBuilder sb = new StringBuilder();
        int b = readByte();
        while (isPrintableChar(b)){ sb.appendCodePoint(b); b = readByte(); }
        return sb.toString();
    }
    public String String() { return next(); }
    public char   Char()   { return next().charAt(0);}
    public int    Int()    { return Integer.parseInt(next());}
    public long   Long()   { return Long.parseLong(next());}
    public double Double() { return Double.parseDouble(next());}
    public String[] StringArr (final int n) { final String[] arr = new String[n]; for(int i = 0; i < n; ++i) arr[i] = String(); return arr; }
    public char[]   CharArr   (final int n) { final char[]   arr = new char[n];   for(int i = 0; i < n; ++i) arr[i] = Char();   return arr; }
    public int[]    IntArr    (final int n) { final int[]    arr = new int[n];    for(int i = 0; i < n; ++i) arr[i] = Int();    return arr; }
    public long[]   LongArr   (final int n) { final long[]   arr = new long[n];   for(int i = 0; i < n; ++i) arr[i] = Long();   return arr; }
    public double[] DoubleArr (final int n) { final double[] arr = new double[n]; for(int i = 0; i < n; ++i) arr[i] = Double(); return arr; }
}


     import java.io.*;
public class Main{
  public static void main(String[] args){
    int D=1;
    int N=1;
    String buf1,buf2,buf3;
    try{
      BufferedReader br
          = new BufferedReader(new InputStreamReader(System.in));

      buf1 = br.readLine();
      buf2 = buf1.substring(0,buf1.indexOf(" "));
      buf3 = buf1.substring(buf1.indexOf(" ")+1);
      D= Integer.parseInt(buf2);
      N = Integer.parseInt(buf3);

  } catch(Exception e) {
      System.out.print("Error:" + e);
  }
    if(N<=100){
    if(D==0){
     if(N==100){System.out.println(N+1);}
     else{System.out.println(N);}}
     if(D==1){
       if(N==100){System.out.println(N*101);}
     else{System.out.println(N*100);}}
    if(D==2){
       if(N==100){System.out.println(N*10100);}
     else{System.out.println(N*10000);}}
    }

  }
}


import java.util.*;
public class Main {

	static void solve() {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt(), b = sc.nextInt();
		System.out.println((int)(b*Math.pow(100,a)));
		sc.close();
	}

	public static void main(String args[]) {
		solve();
	}

}


import java.util.*;
public class Main {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
        int D = sc.nextInt();
        int N = sc.nextInt();
        //String S = sc.next();

        int a;

        a = (int)Math.pow(100, D) * N;
        if(N==100){
            a = (int)Math.pow(100, D) * (N+1)
        }
        System.out.println(a);

        }

        }


import java.util.*;
public class Main {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
        int D = sc.nextInt();
        int N = sc.nextInt();
        //String S = sc.next();

        int a;

        a = (int)Math.pow(100, D) * N;
        System.out.println(a);

        }

        }


#include<stdio.h>
int main() {
	int d, n;
	scanf("%d%d", &d, &n);
	int ans = 1;
	if (d == 1) {
		ans = 100;
	}
	if (d == 2) {
		ans = 10000;
	}
	if (n == 100) {
		n = 101;
	}
	printf("%d\n", ans*n);
	return 0;
}


#include<iostream>
#include<vector>
#include<cmath>
#include<algorithm>
using namespace std;

int main(){
    int D, N;
    cin >> D >> N;

    int tmp = 0;
    for(int i=0; i<N; i++){
        tmp++;
        if(tmp % 100 == 0) tmp++;
    }
    cout << tmp;

    for(int i=0; i<D; i++)
        cout << "00";

    cout << endl;

    return 0;
}


#include <bits/stdc++.h>
using namespace std;

int main(){
  int D,N;
  int P=1;
  cin >> D >> N;
  if(D==0){
    P=1;
  }else if(D==1){
    P=100;
  }else if(D==2){
    P=10000;
  }
  if(N == 100){
    cout << 101*P << endl;
  }else{
    cout << N*P << endl;
  }
}


#include<iostream>
#include<math.h>
using namespace std;
int main()
{
    int d, n, a;
    cin>>d>>n;

    a=pow(100, d);

    cout<<n*a<<endl;

    return 0;
}


#include <bits/stdc++.h>
using namespace std;

int main()
{
       int d,n,x;
       cin>>d>>n;
       if((n<=100&&d==0) || (n<10 && d<2))
        cout<<n;
       else{
       for(int i=0;i<d;i++){
        x=n*100;
       n=x;
       }
       cout<<x;
       }
    return 0;
   }


/******************************************
* AUTHOR : ARPIT *
* NICK : arpitfalcon *
* INSTITUTION : BIT MESRA *
* Ab m game m hu. *
******************************************/

#include <bits/stdc++.h>
using namespace std;
#define MOD 1000000007 -
#define vll vector<ll>
#define vvll vector<vll>
#define pll pair<ll, ll>
#define vpll vector<pll>
#define vin                    \
    ll n;                      \
    cin >> n;                  \
    vector<ll> x(n);           \
    for (ll i = 0; i < n; i++) \
    cin >> x[i]
#define vout                   \
    for (ll i = 0; i < n; i++) \
    cout << x[i] << " "
#define T     \
    ll t = 1; \
    cin >> t; \
    while (t--)
#define ain                    \
    ll n, k;                   \
    cin >> n >> k;             \
    ll a[n];                   \
    for (ll z = 0; z < n; z++) \
    cin >> a[z]
#define aout                   \
    for (ll i = 0; i < n; i++) \
    cout << a[i] << " "
#define pb push_back
#define mp make_pair
#define ff first
#define ss second
#define endl "\n"
#define deb(x) cout << #x << "=" << x << endl
#define deb2(x, y) cout << #x << "=" << x << "," << #y << "=" << y << endl
#define max3(a, b, c) max(a, max(b, c))
#define min3(a, b, c) min(a, min(b, c))
#define max4(a, b, c, d) max(a, max3(b, c, d))
#define min4(a, b, c, d) min(a, min3(b, c, d))
#define blink                \
    ios::sync_with_stdio(0); \
    cin.tie(0);              \
    cout.tie(0);
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
const double PI = 3.141592653589793238463;

#define forn(i, n) for (ll(i) = 0; (i) < (n); ++(i))
#define for1(i, n) for (ll(i) = 1; (i) <= (n); ++(i))
#define forr(i, n) for (ll(i) = (n)-1; (i) >= 0; --(i))
#define forab(i, a, b, c) for (ll(i) = a; (i) <= (b); (i) += (c))

/*
__builtin_ffs(x)
  Number of set bits: __builtin_popcount(x)
  Number of leading zeroes: __builtin_clz(x)
  Number of trailing zeroes : __builtin_ctz(x)
*/

int main()
{
    blink
#ifndef ONLINE_JUDGE
        freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
#endif

    // your code goes here
    long long int d, n;
    cin >> d >> n;

    if (n % 100 == 0)
        cout << (n + 1) * pow(100, d);
    else
        cout << n * pow(100, d);

    return 0;
}


#include<stdio.h>
int main()
{
	int d,n;

	scanf("%d%d",&d,&n);

	if(d==0){
		if(n==100){
			printf("101\n");
			return 0;
		}
		printf("%d",n);
		return 0;
	}
	if(d==1){
		if(n==100){
			printf("10100\n");
			return 0;
		}
		printf("%d",n*100);
		return 0;
	}
	if(d==2){
		if(n==100){
			printf("1010000\n");
			return 0;
		}
		printf("%ld",n*10000);
		return 0;
	}
}


#include <stdio.h>

int main(int argc, char** argv) {
	int i = 0;
	int ans = 1;
	int d, n;
	scanf("%d %d", &d, &n);

	if (d == 0) {
		if (n == 100) {
			ans = 101;
		} else  {
			ans = n * 1;
		}

		printf("%d\n", ans);
		return 0;
	} else if (d == 1) {
		if (n == 100) {
			ans = 10100;
		} else {
			ans = n * 100;
		}
		printf("%d\n", ans);
		return 0;
	} else {
		if (n == 100) {
			ans = 1010000;
		} else {
			ans = n * 10000;
		}
		printf("%d\n", ans);
		return 0;
	}

	return 0;
}


#include <stdio.h>

int main()
{
        int D = 0;
        int N = 0;

        scanf ("%d %d", &D, &N);

        switch(D)
        {
                case 0:
                        if( N < 100 )
                                printf ("%d\n", 1 * N);
                        else
                                printf ("%d\n", 1 * (N + 1));
                        break;
                case 1:
                        if( N < 100 )
                                printf ("%d\n", 100 * N);
                        else
                                printf ("%d\n", 100 * (N + 1));
                        break;
                case 2:
                        if( N < 100 )
                                printf ("%d\n", 10000 * N);
                        else
                                printf ("%d\n", 10000 * (N + 1));
                        break;
        }

        return 0;
}


#include <iostream>
#include <vector>
#include <stdio.h>
#include <cstdio>

//コンパイラ最適化
#pragma GCC optimize("Ofast")

//マクロ
//forループ
//引数は、(ループ内変数,動く範囲)か(ループ内変数,始めの数,終わりの数)、のどちらか
//Dがついてないものはループ変数は1ずつインクリメントされ、Dがついてるものはループ変数は1ずつデクリメントされる
//FORAは範囲for文(使いにくかったら消す)
#define REP(i, n) for (ll i = 0; i < ll(n); i++)
#define REPD(i, n) for (ll i = n - 1; i >= 0; i--)
#define FOR(i, a, b) for (ll i = a; i <= ll(b); i++)
#define FORD(i, a, b) for (ll i = a; i >= ll(b); i--)
#define FORA(i, I) for (const auto &i : I)
//xにはvectorなどのコンテナ
#define ALL(x) x.begin(), x.end()
#define SIZE(x) ll(x.size())
//定数
#define INF 1000000000000 //10^12:∞
#define MOD 1000000007    //10^9+7:合同式の法
#define MAXR 100000       //10^5:配列の最大のrange
//略記
#define PB push_back //挿入
#define MP make_pair //pairのコンストラクタ
#define F first      //pairの一つ目の要素
#define S second     //pairの二つ目の要素

typedef long long ll;

using namespace std;
int main()
{
    int D, N;
    cin >> N >> N;
    int i;
    int n;
    if (D == 0)
    {
        cout << N;
    }
    else if (D == 1)
    {
        cout << N * 100;
    }
    else
    {
        cout << N * 10000;
    }
    return 0;
}


#include<stdio.h>
int main(void)
{
	long long int x,d,n;
	scanf("%lld %lld",&d,&n);
	if(d==0) x=n;
	else if(d==1) x=n*100;
	else x=n*10000;
	printf("%lld\n",x);
	return 0;
}


#include<stdio.h>
int main(void)
{
	long long int x,d,n;
	scanf("%d %d",&lld,&lln);
	if(d==0) x=n;
	else if(d==1) x=n*100;
	else x=n*10000;
	printf("%lld\n",x);
	return 0;
}


function main(input){
  var args = input.split(" ").map(x=>parseInt(x));
  var divCount = args[0];
  var index = args[1];
  var answer = Math.pow(100,divCount)*index;
  if(index===100){
  	answer+=Math.pow(100,divCount);
  }
  console.log(answer);
}

main(require("fs").readFileSync("/dev/stdin","utf-8"));


function Main(input) {
    input = input.split(" ").map(Number);
    if (input[1] == 100) input[1]++;
    console.log(input[1] * Math.pow(100, input[0]));
}
Main(require("fs").readFileSync("/dev/stdin", "utf8"));


// inputに入力データ全体が入る
function Main(input) {
	// 1行目がinput[0], 2行目がinput[1], …に入る
	input = input.split(" ");
	d=~~input[0]
	n=~~input[1]
	bai = 1
	if(d==0){
		if(n<100){
			console.log('%d',n)
		}else{
			console.log('%d','101')
		}
	}else if(d==1){
		if(n<100){
			console.log('%d',n*100)
		}else{
			console.log('%d','10100')
		}
	}else{
		if(n<100){
			console.log('%d',n*10000)
		}else{
			console.log('%d','1010000')
		}
	}
}
//*この行以降は編集しないでください（標準入出力から一度に読み込み、Mainを呼び出します）
Main(require("fs").readFileSync("/dev/stdin", "utf8"));


const main = stdin => {
  const input = stdin.trim().split('\n')
  const [D, N] = input[0].split(' ').map(x => parseInt(x))

  if (D === 0) {
    console.log(N)
  } else if (D === 1) {
    console.log(N * 100)
  } else {
    console.log(N * 10000)
  }
}

// 標準入力
main(require("fs").readFileSync("/dev/stdin", "utf8"))


function main(input) {
  const args = input.split(' ').map(n => parseInt(n, 10));

  const D = args[0];
  const N = args[1];

  switch(D) {
    case 0:
      console.log(N);
      break;
    case 1:
      console.log(N * 100);
      break;
    case 2:
      console.log(N * 10000);
      break;
    default:
      break;
  }
}

main(require('fs').readFileSync('/dev/stdin', 'utf8'));


'use strict'

const Main = (input) => {
  const tmp = input.trim().split(' ')
  const D = parseInt(tmp[0])
  const N = parseInt(tmp[1])

  let result = (N - Math.floor((N - 1) / 99)) * Math.pow(100, D)

  console.log(result)
  return result
}

Main(require('fs').readFileSync('/dev/stdin', 'utf8'))


package main

import (
	"fmt"
)

func main() {
	var d, n int
	fmt.Scan(&d, &n)

	if n == 100 {
		n = 101
	}
	var ans int
	switch d {
	case 0:
		ans = 1 * n
	case 1:
		ans = 100 * n
	case 2:
		ans = 10000 * n
	}
	fmt.Println(ans)
}


// https://atcoder.jp/contests/abc100/tasks/abc100_b

package main

import (
  "bufio"
  "bytes"
  "fmt"
  "math"
  "os"
  "strconv"
  "strings"
)

func main() {
  io := NewIo()
  D := io.NextInt()
  N := io.NextInt()

  order := N

  if N == 100 {
    order++
  }

  result := order * int(math.Pow(100,float64(D)))

  fmt.Println(result)
}

type Io struct {
  reader *bufio.Reader
  writer *bufio.Writer
  tokens []string
  nextToken int
}

func NewIo() *Io {
  return &Io{
    reader: bufio.NewReader(os.Stdin),
    writer: bufio.NewWriter(os.Stdout),
  }
}

func (io *Io) Next() string {
  if io.nextToken >= len(io.tokens) {
    line := io.NextLine()
    io.tokens = strings.Fields(line)
    io.nextToken = 0
  }

  res := io.tokens[io.nextToken]
  io.nextToken++
  return res
}

func (io *Io) NextInt() int {
  res, err := strconv.Atoi(io.Next())
  if err != nil {
    panic(err)
  }
  return res
}

func (io *Io) Println(a ...interface{}) {
  var values []string
  for i := 0; i < len(a); i++ {
    values = append(values, "%v")
  }
  io.Printfln(strings.Join(values, " "), a...)
}

func (io *Io) Printfln(format string, a ...interface{}) {
  fmt.Fprintf(io.writer, format+"\n", a...)
}

func (io *Io) NextLine() string {
  if io.nextToken < len(io.tokens) {
    panic("io.nextToken < len(io.tokens)")
  }

  var buffer bytes.Buffer

  for {
    line, isPrefix, err := io.reader.ReadLine()
    if err != nil {
      panic(err)
    }
    buffer.Write(line)
    if !isPrefix {
      break
    }
  }

  return buffer.String()
}


package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
)

func out(x ...interface{}) {
	fmt.Println(x...)
}

var sc = bufio.NewScanner(os.Stdin)

func getInt() int {
	sc.Scan()
	i, e := strconv.Atoi(sc.Text())
	if e != nil {
		panic(e)
	}
	return i
}

func getString() string {
	sc.Scan()
	return sc.Text()
}

// min, max, asub, absなど基本関数
func max(a, b int) int {
	if a > b {
		return a
	}
	return b
}

func min(a, b int) int {
	if a < b {
		return a
	}
	return b
}

func asub(a, b int) int {
	if a > b {
		return a - b
	}
	return b - a
}

func abs(a int) int {
	if a >= 0 {
		return a
	}
	return -a
}

func main() {
	sc.Split(bufio.ScanWords)
	D, N := getInt(), getInt()

	x := 1
	for i := 0; i < D; i++ {
		x *= 100
	}

	y := 0
	for i := 0; i < N; i++ {
		y += x
	}

	if x*100 == y {
		y += x
	}
	out(y)
}


package main

import (
	"fmt"
	"math"
)

func main() {
	var d, n float64
	fmt.Scan(&d, &n)

	if d == 100 {
		fmt.Println(math.Pow(101, d) * n)
	} else {
		fmt.Println(math.Pow(100, d) * n)
	}
}


package main

import (
	"fmt"
	"math"
)

func main() {
	var d, n int
	fmt.Scan(&d, &n)

	fmt.Println((n - (n-1)/99) * int(math.Pow(100, float64(d))))
}


package main

import (
	"fmt"
	"math"
)

func main() {
	var d, n float64
	fmt.Scan(&d, &n)

	if d == 0 && n < 100 {
		fmt.Println(n)
		return
	}
	if d == 0 && n == 100 {
		fmt.Println(101)
		return
	}

	fmt.Println(int(math.Pow(100, d) * n))
}


d,n = gets.split.map(&:to_i)
start = 100**d
if n != 100
  puts start * n
else
  puts start * 101
end


d, n = gets.split.map(&:to_i)
n = 101 if n == 100
puts (100**d) * n


d,n=gets.split.map(&:to_i)
if n==100 then
  puts 100**d*(n+1)
else
  puts 100**d*n
end


a,b=gets.split.map &:to_i
puts b==100? 100**a*b+1 : 100**a*b


a,b=gets.split.map &:to_i
puts 100**a*b


use std::io::*;
use std::str::FromStr;

pub fn read<T: FromStr>() -> T {
    let stdin = stdin();
    let stdin = stdin.lock();
    let token: String = stdin
        .bytes()
        .map(|c| c.expect("failed to read char") as char)
        .skip_while(|c| c.is_whitespace())
        .take_while(|c| !c.is_whitespace())
        .collect();
    token.parse().ok().expect("failed to parse token")
}

fn main() {
    let d: usize = read();
    let mut c: usize = read();
    if 100 == c {
        c += 1;
    }
    println!("{}", 100_u32.pow(d as u32) * c as u32);
}


#[macro_use]
mod input_mcr {
    // ref: tanakh <https://qiita.com/tanakh/items/0ba42c7ca36cd29d0ac8>
    // diff: using Parser
    #[macro_export(local_inner_macros)]
    macro_rules! input {
    (source = $s:expr, $($r:tt)*) => {
        let mut parser = Parser::from_str($s);
        input_inner!{parser, $($r)*}
    };
    (parser = $parser:ident, $($r:tt)*) => {
        input_inner!{$parser, $($r)*}
    };
    (new_stdin_parser = $parser:ident, $($r:tt)*) => {
        let stdin = std::io::stdin();
        let reader = std::io::BufReader::new(stdin.lock());
        let mut $parser = Parser::new(reader);
        input_inner!{$parser, $($r)*}
    };
    ($($r:tt)*) => {
        input!{new_stdin_parser = parser, $($r)*}
    };
}

    #[macro_export(local_inner_macros)]
    macro_rules! input_inner {
    ($parser:ident) => {};
    ($parser:ident, ) => {};
    ($parser:ident, $var:ident : $t:tt $($r:tt)*) => {
        let $var = read_value!($parser, $t);
        input_inner!{$parser $($r)*}
    };
}

    #[macro_export(local_inner_macros)]
    macro_rules! read_value {
    ($parser:ident, ( $($t:tt),* )) => {
        ( $(read_value!($parser, $t)),* )
    };
    ($parser:ident, [ $t:tt ; $len:expr ]) => {
        (0..$len).map(|_| read_value!($parser, $t)).collect::<Vec<_>>()
    };
    ($parser:ident, chars) => {
        read_value!($parser, String).chars().collect::<Vec<char>>()
    };
    ($parser:ident, char_) => {
        read_value!($parser, String).chars().collect::<Vec<char>>()[0]
    };
    ($parser:ident, usize1) => {
        read_value!($parser, usize) - 1
    };
    ($parser:ident, i64_) => {
        $parser.fast_i64()
    };
    ($parser:ident, usize_) => {
        $parser.fast_i64() as usize
    };
    ($parser:ident, usize1_) => {
        ($parser.fast_i64() - 1) as usize
    };
    ($parser:ident, $t:ty) => {
        $parser.next::<$t>().expect("Parse error")
    };
}

    use std::io;
    use std::io::BufRead;
    use std::str;

    // ref: tatsuya6502 <https://qiita.com/tatsuya6502/items/cd448486f7ef7b5b8c7e>
    // ref: wariuni <https://qiita.com/tatsuya6502/items/cd448486f7ef7b5b8c7e#comment-7040a5ae96305e884eb9>
    // diff: using std::io::BufRead::fill_buf()
    pub struct Parser<R> {
        pub reader: R,
        buf: Vec<u8>,
        pos: usize,
    }

    impl Parser<io::Empty> {
        pub fn from_str(s: &str) -> Parser<io::Empty> {
            Parser {
                reader: io::empty(),
                buf: s.as_bytes().to_vec(),
                pos: 0,
            }
        }
    }

    impl<R: BufRead> Parser<R> {
        pub fn new(reader: R) -> Parser<R> {
            Parser {
                reader: reader,
                buf: vec![],
                pos: 0,
            }
        }
        pub fn update_buf(&mut self) {
            self.buf.clear();
            self.pos = 0;
            loop {
                let (len, complete) = {
                    let buf2 = self.reader.fill_buf().unwrap();
                    self.buf.extend_from_slice(buf2);
                    let len = buf2.len();
                    (len, buf2[len - 1] <= 0x20)
                };
                self.reader.consume(len);
                if complete {
                    break;
                }
            }
        }
        pub fn next<T: str::FromStr>(&mut self) -> Result<T, T::Err> {
            loop {
                let mut begin = self.pos;
                while begin < self.buf.len() && (self.buf[begin] <= 0x20) {
                    begin += 1;
                }
                let mut end = begin;
                while end < self.buf.len() && (self.buf[end] > 0x20) {
                    end += 1;
                }
                if begin != self.buf.len() {
                    self.pos = end;
                    return unsafe { str::from_utf8_unchecked(&self.buf[begin..end]) }.parse::<T>();
                } else {
                    self.update_buf();
                }
            }
        }
        pub fn fast_i64(&mut self) -> i64 {
            loop {
                let mut begin = self.pos;
                while begin < self.buf.len() && (self.buf[begin] <= 0x20) {
                    begin += 1;
                }
                if begin == self.buf.len() {
                    self.update_buf();
                    continue;
                }
                let mut res = 0;
                let (is_positive, mut end) = match self.buf[begin] {
                    b'+' => (true, begin + 1),
                    b'-' => (false, begin + 1),
                    _ => (true, begin),
                };
                while end < self.buf.len() && (self.buf[end] > 0x20) {
                    res = res * 10 + (self.buf[end] as i64 - '0' as i64);
                    end += 1;
                }
                if begin != self.buf.len() {
                    self.pos = end;
                    return if is_positive { res } else { -res };
                } else {
                    self.update_buf();
                }
            }
        }
    }
}

use input_mcr::*;
use std::cmp::*;

fn main() {
    input! {
        n: usize,
        m: usize,
    }
    if m == 100 {
        let res = match n {
            0 => 101,
            1 => 10100,
            2 => 1010000,
            _ => panic!(),
        };
        println!("{}", res);
        return;
    }
    let mut res = m;
    for _ in 0..n {
        res *= 100;
    }
    println!("{}", res);
}


use std::io;

fn main() {
    let mut buf = String::new();
    io::stdin().read_line(&mut buf).unwrap();
    let mut iter = buf.split_whitespace();

    let d: i64 = iter.next().unwrap().parse().unwrap();
    let n: i64 = iter.next().unwrap().parse().unwrap();

    let base_num: i64 = 100i64.pow(d as u32);

    if n == 100 {
        println!("{}", base_num * n + base_num);
    } else {
        println!("{}", base_num * n);
    }
}


fn read_multi<T: std::str::FromStr>() -> Vec<T> {
    let mut s = std::string::String::new();
    std::io::stdin().read_line(&mut s).ok();
    s.trim().split_whitespace()
        .map(|e| e.parse().ok().unwrap()).collect()
}

fn main() {
    //println!("Hello, world!");
    let vn: Vec<i32> = read_multi(); //i32
    //println!("{:?}", vn);

    let res: i32 = 100_i32.pow(vn[0] as u32) * vn[1];
    println!("{}", res);
}


use proconio::input;

fn main() {
  input! {
    d: u32,
    n: usize
  }
  println!("{}", n * 100usize.pow(d));
}


#[allow(unused_imports)] use proconio::{input, marker::{Bytes, Chars, Usize1, Isize1}};
#[allow(unused_imports)] use std::cmp::{min, max};
#[allow(unused_imports)] use superslice::Ext as _;

#[proconio::fastout]
fn main() {
	input! {
		d: usize,
		n: usize,
	}

	match d {
		0 => {
			if n == 100 {
				println!("{}", n+1);
			}
			else {
				println!("{}", n);
			}
		},
		1 => println!("{}", 100*n),
		_ => println!("{}", 100*100*n),
	}
}


var i=readLine()!.characters.split(" ").map{Int(String($0))!};print((0..<i[0]).reduce(1){$0.0*100}*(i[1]>99 ?101:i[1]))


var i=readLine()!.characters.split(" ").map{Int(String($0))!};if(i[1]>99){i[1]++};print((0..<i[0]).reduce(1){$0.0*100}*i[1])


import Foundation
func toTuple<T>(_ args: [T]) -> (T, T) { (args[0], args[1]) }
func readInts() -> [Int] { readLine()!.split(separator: " ").map { Int($0)! } }

let (d, n) = toTuple(readInts())
var ans = 0
var count = 0
if d == 0 {
  while count < n {
    ans += 1
    if ans % 100 != 0 {
      count += 1
    }
  }
} else if d == 1 {
  while count < n {
    ans += 100
    if !(ans / 100).isMultiple(of: 100) {
      count += 1
    }
  }
} else {
  while count < n {
    ans += 10000
    if !(ans / 10000).isMultiple(of: 100) {
      count += 1
    }
  }
}
print(ans)


var i=readLine()!.characters.split(" ").map{Int(String($0))!};if(i[0]>99){i[0]++};print((0..<i[0]).reduce(1){$0.0*100}*i[1])


let i=readLine()!.characters.split(" ").map{Int(String($0))!};print((0..<i[0]).reduce(1){$0.0*100}*i[1])


let i=readLine()!.characters.split(" ").map{Int("\($0)")!};print((0..<i[0]).reduce(1){$0.0*100}*i[1])


function main(input) {
	const [d, n] = input.trim().split(" ").map(n => Number(n));
  	const num = n === 100 ? n + 1 : n;
  	const result = (100 ** d) * num;
  	console.log(result);
}
main(require("fs").readFileSync("/dev/stdin", "utf8"));


import { ifError } from "assert";

const input=require('fs').readFileSync('/dev/stdin','utf8').split(/[\s]/);const tn=():number=>{const a=input[0];input.shift();return Number(a)};const tnn=(n:number):number[]=>{const a=[];for(let i=0;i<n;i++){a.push(tn())}return a};const ts=():string=>{const a=input[0];input.shift();return String(a)};const tss=(n:number):string[]=>{const a=[];for(let i=0;i<n;i++){a.push(ts())}return a};const tc=():string=>{let a=input[0].split('');const b=a[0];a.shift();if(a.length>0){input[0]=a.join('')}else{input.shift()}return String(b)};const tcc=(n:number):string[]=>{const a=[];for(let i=0;i<n;i++){a.push(tc())}return a};const to=(...arg)=>{console.log(...arg)};const abs=(a)=>{return Math.abs(a)};const min=(...a)=>{return Math.min(...a)};const max=(...a)=>{return Math.max(...a)};const floor=(a)=>{return Math.floor(a)};const asc=(ar:number[])=>{return ar.sort((a,b)=>{return a-b})};const desc=(ar:number[])=>{return ar.sort((a,b)=>{return b-a})};const sw=(a,arr:any[],op:'=='|'>='|'>'|'<='|'<'='==')=>{for(let i=0;i<arr.length-1;i+=2){if(eval(a+op+arr[i])){return arr[i+1];}}return arr[arr.length-1]};const near=(n:number,arr:number[]):number=>{let ne=arr[0],ni=0;for(let i=1;i<arr.length;i++){if(Math.abs(n-ne)>Math.abs(n-arr[i])){ne=arr[i];ni=i}}return ni};const objvs =(a)=>{const b=[];for(const v in a){b.push(a[v])}return b};
const main=()=>{
  let [d,n]=tnn(2)
  if(d==0&&n==100)to(101)
  else if(d==1&&n==100)to(10100)
  else if(d==2&&n==100)to(1010000)
  else to(d==0?n:d==1?100*n:10000*n)
}
main()


const main = (input: void) => {
  const D: number = parseInt(input.split(' ')[0],10);
  const N: number = parseInt(input.split(' ')[1],10);
  let ans: number;

  if (D === 0){
    ans = N * 1;
  } else if (D === 1) {
    ans = N * 100;
  } else if (D === 2) {
    ans = N * 10000;
  }
  if (N === 100) {
    ans = ans/N;
    ans = ans * (N+1);
  }
  console.log(ans);
}

main(require('fs').readFileSync('/dev/stdin', 'utf8'));


import { readFileSync } from "fs";

const read = () =>
  readFileSync(0, "utf8")
    .split("\n")
    .map((line) => line.split(" "));

const main = (input: string[][]) => {
  const [D, N] = input[0].map(Number);

  return 100 ** D * N;
};

console.log(main(read()));


import * as fs from 'fs'
import {debug} from '../../../util'

const input = fs.readFileSync('/dev/stdin', 'utf8').trim()

const output = (x: string | number | boolean): void => console.log(x)
const splitLine = (string: string): string[] => string.split('\n')
const splitBlank = (string: string): string[] => string.split(' ')
const toNumbers = (array: string[]): number[] => array.map(v => Number(v))
const range = (end: number, start :number = 0): number[] => [...Array(end - start)].map((v, i) => i + start)

// debug(input)

/* ここから */
const [D, N] = toNumbers(splitBlank(input))

output(100 ** D * N)


import { ifError } from "assert";

const input=require('fs').readFileSync('/dev/stdin','utf8').split(/[\s]/);const tn=():number=>{const a=input[0];input.shift();return Number(a)};const tnn=(n:number):number[]=>{const a=[];for(let i=0;i<n;i++){a.push(tn())}return a};const ts=():string=>{const a=input[0];input.shift();return String(a)};const tss=(n:number):string[]=>{const a=[];for(let i=0;i<n;i++){a.push(ts())}return a};const tc=():string=>{let a=input[0].split('');const b=a[0];a.shift();if(a.length>0){input[0]=a.join('')}else{input.shift()}return String(b)};const tcc=(n:number):string[]=>{const a=[];for(let i=0;i<n;i++){a.push(tc())}return a};const to=(...arg)=>{console.log(...arg)};const abs=(a)=>{return Math.abs(a)};const min=(...a)=>{return Math.min(...a)};const max=(...a)=>{return Math.max(...a)};const floor=(a)=>{return Math.floor(a)};const asc=(ar:number[])=>{return ar.sort((a,b)=>{return a-b})};const desc=(ar:number[])=>{return ar.sort((a,b)=>{return b-a})};const sw=(a,arr:any[],op:'=='|'>='|'>'|'<='|'<'='==')=>{for(let i=0;i<arr.length-1;i+=2){if(eval(a+op+arr[i])){return arr[i+1];}}return arr[arr.length-1]};const near=(n:number,arr:number[]):number=>{let ne=arr[0],ni=0;for(let i=1;i<arr.length;i++){if(Math.abs(n-ne)>Math.abs(n-arr[i])){ne=arr[i];ni=i}}return ni};const objvs =(a)=>{const b=[];for(const v in a){b.push(a[v])}return b};
const main=()=>{
  let [d,n]=tnn(2)
  if(d==1&&n==100)to(10100)
  else if(d==2&&n==100)to(1010000)
  else to(d==0?n:d==1?100*n:10000*n)
}
main()


A,B,C=map(int, input().split())
R=A-B
print((C-R)*(C>R))


a, b, c = map(int, input().split())

print(max(0, c - a + b))


a,b,c=map(int,input().split())
print(max(0,b+c-a))


a,b,c = map(int,input().split())
q = a-b
ans = c - ans

if ans < 0:
  ans = 0

print(ans)


a, b, c = map(int, input().split())

print(a + b < c)


A,B,C=map(int,input().split())
if A>B:
  if (A-B)>=C:
    print(0)
  else:
    print(C-A+B)


import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main {

	public static void main(String[] args) throws Exception {
		// TODO 自動生成されたメソッド・スタブ
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		String W = in.readLine();
		String[] ws = W.split(" ");
		int A = Integer.parseInt(ws[0]);
		int B = Integer.parseInt(ws[1]);
		int C = Integer.parseInt(ws[2]);

		int x = A-B;
		int y = C-x;
		if(y<=0){
			y=0;
		}
		System.out.println(y);

	}

}


import java.io.*;
import java.util.*;
class Main{
	static final long MOD = 1_000_000_007; // 10^9+7
    static final int MAX = 2_147_483_646; // intMax
    static final int INF = 1_000_000_000; // 10^9
    public static void main(String[] args) throws Exception {
		hayami saori = new hayami();
		int a = saori.saori_hayami();
		int b = saori.saori_hayami();
		int c = saori.saori_hayami();
		int num = a - b;
		num = c -num;
		if(num < 0){
			num = 0;
		}
		System.out.println(num);

		saori.close();
    }
}

class hayami implements Closeable {
	private final InputStream in = System.in;
	private final byte[] hayami = new byte[1024];
	private int Hayami = 0;
	private int saori = 0;
	private boolean HayamiSaori() {
		if (Hayami < saori) {
			return true;
		}else{
			Hayami = 0;
			try {
				saori = in.read(hayami);
			} catch (IOException e) {
				e.printStackTrace();
			}
			if (saori <= 0) {
				return false;
			}
		}
		return true;
	}
	private int SaoriHayami() {
		if (HayamiSaori()) {
            return hayami[Hayami++];
         }else{
             return -1;
         }
	}
	private static boolean hayami_saori(int hayami) {
		return 33 <= hayami && hayami <= 126;
	}
	public boolean hayamisaori() {
		while(HayamiSaori() && !hayami_saori(hayami[Hayami])) Hayami++; return HayamiSaori();
	}
	public String nextHayami() {
		if (!hayamisaori()) throw new NoSuchElementException();
		StringBuilder hayamin = new StringBuilder();
		int saori = SaoriHayami();
		while(hayami_saori(saori)) {
			hayamin.appendCodePoint(saori);
			saori = SaoriHayami();
		}
		return hayamin.toString();
	}
	public long saorihayami() {//nextLong
		if (!hayamisaori()) throw new NoSuchElementException();
		long hayami = 0;
		boolean misao = false;
		int saori = SaoriHayami();
		if (saori == '-') {
			misao = true;
			saori = SaoriHayami();
		}
		if (saori < '0' || '9' < saori) {
			throw new NumberFormatException();
		}
		while(true){
			if ('0' <= saori && saori <= '9') {
				hayami *= 10;
				hayami += saori - '0';
			}else if(saori == -1 || !hayami_saori(saori)){
				return misao ? -hayami : hayami;
			}else{
				throw new NumberFormatException();
			}
			saori = SaoriHayami();
		}
	}
	public int saori_hayami() {//nextInt
		long hayami = saorihayami();
		if (hayami < Integer.MIN_VALUE || hayami > Integer.MAX_VALUE) throw new NumberFormatException();
		return (int) hayami;
	}
	public double Hayamin() { //nextDouble
		return Double.parseDouble(nextHayami());
	}
	public void close() {
		try {
			in.close();
		} catch (IOException e) {
		}
    }

}


import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.math.BigInteger;
import java.util.List;
import java.util.NoSuchElementException;

public class Main {

	public static void main(String[] args) throws IOException {
		new Main().solve();
	}

	private void solve() throws IOException {
		try {
			solveA();
			//			 solveB();
			//			 solveC();
			//			 solveD();
			//			 solveE();
			//			 solveF();
		} finally {
			if (in != null) {
				in.close();
			}
			if (out != null) {
				out.flush();
				out.close();
			}
		}

	}

	private void solveA() {
		int a = nextInt();
		int b = nextInt();
		int c = nextInt();
		out.println((c - (a - b)) > 0 ? (c - (a - b)) : 0);
	}

	private void solveB() {
		int n = nextInt();

		out.println("");
	}

	private void solveC() {
		int n = nextInt();

		out.println("");
	}

	private void solveD() {
		int n = nextInt();

		out.println("");
	}

	private void solveE() {
		int n = nextInt();

		out.println("");
	}

	private void solveF() {
		int n = nextInt();

		out.println("");
	}

	/*
	 * 階乗計算の最大値
	 * もっと大きいのが必要ならここを修正
	 */
	private final int FACTORIAL_NUM = 111111;
	/*
	 * 階乗の事前計算（mod 済）
	 */
	private long[] factorial = new long[FACTORIAL_NUM];
	/*
	 * 逆数の事前計算（mod 済）
	 */
	private long[] reverseFactorial = new long[FACTORIAL_NUM];
	private boolean isInitFactorial = false;

	/**
	 * 階乗計算の事前累積和
	 * [1, 1, 2, 3, 4, 5, … FACTORIAL_NUM]
	 * mod済
	 */
	private void initFactorial(long mod) {
		factorial[0] = 1;
		for (int i = 1; i < FACTORIAL_NUM; i++) {
			factorial[i] = (factorial[i - 1] * i) % mod;
		}
	}

	/**
	 * 逆数の事前計算
	 * もっと速い方法があったので修正
	 */
	private void initReverseFactorial(long mod) {

		reverseFactorial[FACTORIAL_NUM - 1] = modInverse(factorial[FACTORIAL_NUM - 1], mod);
		for (int i = FACTORIAL_NUM - 2; i >= 0; i++) {
			/*
			 * 以下を利用する。
			 * これにより毎回modInverseしなくてよくなる
			 * (N!)^(-1) * N -> ((N - 1)!)^(-1)
			 * (N-1!)^(-1) * N -> ((N - 2)!)^(-1)
			 */
			reverseFactorial[i] = (reverseFactorial[i + 1] * (i + 1)) % mod;
		}
		//		reverseFactorial[0] = 1;
		//		for (int i = 0; i < FACTORIAL_NUM; i++) {
		//			reverseFactorial[i] = modInverse(factorial[i], mod);
		//		}
	}

	/**
	 * フェルマーの小定理を用いて逆元を求める。
	 * ある数xのmod p（pは素数）の逆数x'はx' = x^(p-2)
	 * 繰り返し二乗法を用いて計算する。
	 * http://satanic0258.hatenablog.com/entry/2016/04/29/004730
	 * {@link BigInteger#modInverse(BigInteger)}とどちらが速いか？
	 * @param x
	 * @return
	 */
	private long modInverse(long x, long mod) {
		long res = 1L;
		long k = mod - 2L;
		long y = x;
		while (k != 0) {
			if (k % 2 != 0) {
				res = (res * y) % mod;
			}
			y = (y * y) % mod;
			k /= 2;
		}
		return res;
	}

	private void initFactorialCalc(long mod) {
		if (isInitFactorial) {
			//初期化済みならreturn
			return;
		}
		//階乗の事前計算
		initFactorial(mod);
		//逆数の計算もしておく
		initReverseFactorial(mod);
		isInitFactorial = true;
	}

	/**
	 * 組み合わせ
	 * nCk -> n! / k!・(n-k)!
	 * @param n
	 * @param k
	 * @param mod
	 * @return
	 */
	private long combination(int n, int k, long mod) {
		initFactorialCalc(mod);
		if (k < 0 || n < k) {
			return 0;
		}

		//分子の計算
		long calResN = factorial[n];

		//分母の計算
		long calResNK = reverseFactorial[n - k];
		long calcResK = reverseFactorial[k];
		long denominator = (calResNK * calcResK) % mod;

		return (calResN * denominator) % mod;

	}

	/**
	 * 順列
	 * nPk -> n! / (n-k)!
	 * @param n
	 * @param k
	 * @return
	 */
	private long permutation(int n, int k, long mod) {
		initFactorialCalc(mod);
		if (k < 0 || n < k) {
			return 0;
		}
		long calResN = factorial[n];
		long calResNK = reverseFactorial[n - k];
		return (calResN * calResNK) % mod;
	}

	/**
	 * 多項係数
	 * 文字aをp個,bをq個,cをr個, dをs個 あわせてn個を1列に並べるときの並べ方
	 * n! / p!・q!・r!・s!
	 * @param n
	 * @param strNum
	 * @param mod
	 * @return
	 */
	private long multinominalCoefficient(int n, List<Integer> strNum, int mod) {
		initFactorialCalc(mod);

		long calResN = factorial[n];
		long calResDenomi = 1;
		for (Integer num : strNum) {
			calResDenomi *= reverseFactorial[num];
		}
		return (calResN * calResDenomi) % mod;
	}

	/**
	 * 重複組合せ nHr （同次積）
	 * nHr = (n+r-1)Cr
	 * 異なるn個のものから重複を許してr個取る組合せの総数
	 * 例：
	 * リンゴ，ミカン，牛肉の3種類の果物があります．これらの中から6個の食材を買って帰ります．
	 * このとき，何通りの買い方がありますか？ただし，含まれない食材があってもよいものとします
	 * @param n
	 * @param r
	 * @param mod
	 * @return
	 */
	private long homogeneousProduct(int n, int r, long mod) {
		if (n == 0 && r == 0) {
			return 1;
		}
		return combination(n + r - 1, r, mod);
	}

	private final PrintWriter out = new PrintWriter(System.out);
	private final InputStream in = System.in;
	private final byte[] buffer = new byte[1024];
	private int ptr = 0;
	private int buflen = 0;

	private boolean hasNextByte() {
		if (ptr < buflen) {
			return true;
		} else {
			ptr = 0;
			try {
				buflen = in.read(buffer);
			} catch (IOException e) {
				e.printStackTrace();
			}
			if (buflen <= 0) {
				return false;
			}
		}
		return true;
	}

	private int readByte() {
		if (hasNextByte())
			return buffer[ptr++];
		else
			return -1;
	}

	private static boolean isPrintableChar(int c) {
		return 33 <= c && c <= 126;
	}

	private void skipUnprintable() {
		while (hasNextByte() && !isPrintableChar(buffer[ptr]))
			ptr++;
	}

	public boolean hasNext() {
		skipUnprintable();
		return hasNextByte();
	}

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

	public String next() {
		if (!hasNext())
			throw new NoSuchElementException();
		StringBuilder sb = new StringBuilder();
		int b = readByte();
		while (isPrintableChar(b)) {
			sb.appendCodePoint(b);
			b = readByte();
		}
		return sb.toString();
	}

	public long nextLong() {
		if (!hasNext())
			throw new NoSuchElementException();
		long n = 0;
		boolean minus = false;
		int b = readByte();
		if (b == '-') {
			minus = true;
			b = readByte();
		}
		if (b < '0' || '9' < b) {
			throw new NumberFormatException();
		}
		while (true) {
			if ('0' <= b && b <= '9') {
				n *= 10;
				n += b - '0';
			} else if (b == -1 || !isPrintableChar(b)) {
				return minus ? -n : n;
			} else {
				throw new NumberFormatException();
			}
			b = readByte();
		}
	}
}


import java.util.*;
import java.io.*;
import java.lang.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int a = sc.nextInt();
        int b = sc.nextInt();
        int c = sc.nextInt();

        if (a!=b && (c>(a-b)))
            System.out.println(c-(a-b));
        else
            System.out.println(0);
    }
}


import java.io.*;
import java.util.*;
import java.math.*;
import java.lang.*;

public class ex
{
	static Scanner cin = new Scanner(System.in);
	static PrintStream cout = new PrintStream
	(new FileOutputStream(FileDescriptor.out));

    public static void main(String args[])
    {
   		int t,n,a,b,c,d,e,i,j,k,x,y,z,cnt=0,cnt1=0;
    	boolean flag = false;

        a=cin.nextInt();
        b=cin.nextInt();
        c=cin.nextInt();
        n=b+c;
        if(n<=a) cout.println('0');
        else cout.println(n-a);
  }
}


import java.util.*;
public class Main
{
  public static void main(String args[])
  {
    Scanner in=new Scanner(System.in);
    int a=in.nextInt();
    int b=in.nextInt();
    int c=in.nextInt();
    if(a<=b+c)
    {
      System.out.println(0);
    }
    else
    {
      System.out.println((b+c)-a);
    }
  }
}


#include<stdio.h>

#define rep(i, n) for(int i = 0; i < (int)(n); i++)

int main()
{
    int a,b,c;
    int res;

    scanf("%d %d %d",&a,&b,&c);

    res = c - (a - b);
    if(res < 0)
    {
        res = 0;
    }

    printf("%d\n",res);

    return 0;
}


#include<stdio.h>

int main(void){
	int a, b, c;
	int ans;

	scanf("%d %d %d", &a, &b, &c);

	ans = (c-(a-b));
	if(ans > 0)
		printf("%d\n", (c-(a-b)) );
	else
		printf("0\n");

	return 0;
}


// Daniel Grzegorzewski
// while (clock()<=69*CLOCKS_PER_SEC)
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
// #pragma GCC target ("avx2")
// #pragma GCC optimization ("O3")
// #pragma GCC optimization ("unroll-loops")

#define MP make_pair
#define PB push_back
#define ST first
#define ND second

using namespace __gnu_pbds;
using namespace std;

template <typename T>
using ordered_set =
    tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;

//X.find_by_order(k); - zwraca iterator na k-ty element (numeracja od zerowego)
//X.order_of_key(k); - zwraca liczbę elementów ostro mniejszych niż k

typedef pair<int, int> PII;
typedef vector<int> VI;
typedef vector<PII> VII;
typedef long long LL;

void init_ios() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
}

int a, b, c;

int main() {
  init_ios();
  cin >> a >> b >> c;
  int cnt = min(c, a-b);
  cout<<c-cnt<<"\n";
}


#include <bits/stdc++.h>
#define rep(i, n) for (ll i = 0; i < (n); i++)
using namespace std;
using ll = long long;
const ll INF = 1LL << 60;

int main(void){
  int a, b, c;
  cin >> a >> b >> c;
  a -= b;
  cout << abs(c-a) << endl;
  return 0;
}


#include <bits/stdc++.h>
#define rep(i, n) for (ll i = 0; i < (n); i++)
using namespace std;
using ll = long long;
const ll INF = 1LL << 60;

int main(void){
  int a, b, c;
  cin >> a >> b >> c;
  a -= b;
  cout << c-a << endl;
  return 0;
}


#pragma GCC optimize("O3")

#define _GLIBCXX_DEBUG
#include <iostream>
#include <vector>
#include <string>
#include <string_view>
#include <algorithm>
#include <cmath>
#include <iomanip>
#include <cassert>
#include <list>
#include <map>
#include <set>
#include <queue>
#include <deque>
#include <stack>
using namespace std;

/*----------macros----------*/

//output================
#define endl '\n'
#define fcout(a) cout << fixed << setprecision((int)(a))

//typedef===============
typedef long long       ll;
typedef long double     ld;
typedef pair<int, int>  Pii;
typedef pair<ll, ll>    Pll;

//const number==========
constexpr ll INF9   = (ll)1e9 + 1;
constexpr ll INF18  = (ll)1e18 + 1;
constexpr ll MOD    = 1000000007;
constexpr ll MOD2   = 998244353;
constexpr ld PI     = 3.141592653589793L;

//member================
#define pb push_back
#define eb emplace_back
#define pf push_front
#define mp make_pair
#define fi first
#define se second

//others================
#define all(x)          (x).begin(), (x).end()
#define rall(x)         (x).rbegin(), (x).rend()
#define rep(i, n)       for(int i = 0; (i) < (n); ++(i))
#define reps(i, n)      for(int i = 1; (i) <= (n); ++(i))
#define rrep(i, n)      for(int i = n - 1; (i) >= 0 ; --(i))
#define repbit(bit, n)  for(int bit = 0; (bit) < (1 << (n)); ++(bit))
#define ifbit(bit, i)   if((bit) & (1 << (i)))
#define CtoI(c)         int((c)) - int('0')
#define ItoC(c)         char((c) + '0')

//functions=============
template<typename T1, typename T2>
inline bool chmax(T1 &a, T2 b) { return a < b && (a = b, true); }

template<typename T1, typename T2>
inline bool chmin(T1 &a, T2 b) { return a > b && (a = b, true); }

//vector<int> dx = {1, 0, -1, 0}, dy = {0, 1, 0, -1};
//vector<int> dx2 = { 1,1,0,-1,-1,-1,0,1 }, dy2 = { 0,1,1,1,0,-1,-1,-1 };

/*--------additional--------*/

/*----------main------------*/

int main() {
/*----------fastio----------*/
    std::cin.tie(nullptr);
    std::cout.tie(nullptr);
    std::ios::sync_with_stdio(false);
/*----------solve-----------*/

    int a, b, c; cin >> a >> b >> c;
    cout << c - (a - b) << endl;

return 0;
}


#include<stdio.h>
int main(void)
{
    int a,b,c;
  int d;

    // スペース区切りの整数の入力
    scanf("%d %d %d",&a,&b,&c);

    // 出力
  if(a-b<c){
    d = c -(a-b);

  }else{
    d = 0;
  }
   printf("%d",d);
    return 0;
}


#include<stdio.h>
#include<stdlib.h>

int main(void)
{
  int a , b, c;

  scanf("%d %d %d", &a, &b, &c);

  int n = c - (a - b);
  if (n < 0)
    printf("0\n");
  else
    printf("%d\n", n);

  return 0;
}


int main(void)
{
  int a,b,c;

  scanf("%d%d%d", &a, &b, &c);

  for(int i=0; i<(a-b); i++)
  {
    if(c==0)
      break;
    c--;
  }
    printf("%d", c);

  return(0);
}


#include <iostream>
#include <map>
#include <cmath>
#define ll long long
using namespace std;

int main()
{
    int a,b,c;
    cin >> a >> b >> c;
    int result=c-(a-b);
    if(result <=0){
        result =0;
    }
    cout << result;
    return 0;
}


/******************************************************************************

                              Online C++ Compiler.
               Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.

*******************************************************************************/

#include <iostream>

using namespace std;

int main()
{

    int ans,a,b,c; cin >> a >> b >>c;
    ans = c-(a-b);
    if(ans<0){
        cout << "0" << endl;
    }
    else{
        cout << ans << endl;
    }

    return 0;
}


#include <iostream>
#include <algorithm>
#include <bits/stdc++.h>
#define FAST ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
#define ll long long
#define mm(arr) memset(arr, 0, sizeof(arr))
#define scanArray(a,n) for(int i = 0; i < n; i++){cin >> a[i];}
#define pb push_back
#define PI 3.141592653589793
#define MOD 1000000007

using namespace std;
int main(){
    FAST
    int ans,a,b,c; cin >> a >> b >>c;
    ans = c-(a-b);
    if(ans<0){
        cout << "0" << endl;
    }
    else{
        cout << ans << endl;
    }

    return 0;
}


// inputに入力データ全体が入る
function Main(input) {
	// 1行目がinput[0], 2行目がinput[1], …に入る
	input = input.split(" ");
	//文字列から10進数に変換するときはparseIntを使います
	var A = parseInt(input[0], 10);
  	var B = parseInt(input[1], 10);
  	var C = parseInt(input[2], 10);

	console.log('%d',Math.max(C - A + B, 0));
}

//*この行以降は編集しないでください（標準入出力から一度に読み込み、Mainを呼び出します）
Main(require("fs").readFileSync("/dev/stdin", "utf8"));


"use strict";

const input = require("fs").readFileSync("/dev/stdin", "utf8");

const inputs = input.split(" ");
const A = Number(inputs[0]);
const B = Number(inputs[1]);
const C = Number(inputs[2]);

const main = (A, B, C) => {
  let space = A - B;
  if (space >= C) {
    return 0;
  } else {
    return C - space;
  }
};

console.log(main(A, B, C));


function Main(input) {
    input = input.trim()
  input = input.split(" ").map(Number);
  var N = input[2]-(input[0]-input[1]);
  if(N<0) N=0;
  console.log(N)
}Main(require("fs").readFileSync("/dev/stdin", "utf8"));


function Main(input) {
  input = input.split("\n");
  var A = parseInt(input[0].split(" ")[0]);
  var B = parseInt(input[0].split(" ")[1]);
  var C = parseInt(input[0].split(" ")[2]);
  var ans = Math.min(0,C-(A-B));

  console.log('%s', ans);
  return ans;
}

function debug(n){
  var input = document.getElementById("input"+n).value;
  var ans=Main(input);
  var result="WA";
  if(ans==document.getElementById("output"+n).value.split("\n")[0]){
    result="AC";
  }
  document.getElementById("result"+n).innerHTML=result;
}
Main(require("fs").readFileSync("/dev/stdin", "utf8"));


function Main(input) {
  input = input.split("\n");
  var A = parseInt(input[0].split(" ")[0]);
  var B = parseInt(input[0].split(" ")[1]);
  var C = parseInt(input[0].split(" ")[2]);
  var ans = C-(A-B);

  console.log('%s', ans);
  return ans;
}

function debug(n){
  var input = document.getElementById("input"+n).value;
  var ans=Main(input);
  var result="WA";
  if(ans==document.getElementById("output"+n).value.split("\n")[0]){
    result="AC";
  }
  document.getElementById("result"+n).innerHTML=result;
}
Main(require("fs").readFileSync("/dev/stdin", "utf8"));


// inputに入力データ全体が入る
function Main(input) {
  var a,b,c;
  a = Number(input.split('\n')[0].split(' ')[0]);
  b = Number(input.split('\n')[0].split(' ')[1]);
  c = Number(input.split('\n')[0].split(' ')[2]);
  console.log(c - (a - b));
}
//*この行以降は編集しないでください（標準入出力から一度に読み込み、Mainを呼び出します）
Main(require("fs").readFileSync("/dev/stdin", "utf8"));


package main

import "fmt"

func main() {
	var a, b, c int
	fmt.Scan(&a, &b, &c)
	ans :=c-(a-b)
	if ans < 0 {
		fmt.Println(0)
		return
	}
	fmt.Println(ans)
}


package main

import "fmt"

func main() {
	var a, b, c int
	fmt.Scan(&a, &b, &c)

	rest := a - b
	if rest-c < 0 {
		fmt.Println(c - rest)
	} else {
		fmt.Println(0)
	}
}


package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
)

var sc = bufio.NewScanner(os.Stdin)

func readInt() int {
	sc.Scan()
	i, err := strconv.Atoi(sc.Text())
	if err != nil {
		panic(err)
	}
	return i
}

func readString() string {
	sc.Scan()
	return sc.Text()
}

func readInt64() int64 {
	sc.Scan()
	i, err := strconv.Atoi(sc.Text())
	if err != nil {
		panic(err)
	}
	return int64(i)
}

func readfloat64() float64 {
	sc.Scan()
	i, err := strconv.Atoi(sc.Text())
	if err != nil {
		panic(err)
	}
	return float64(i)
}

func abs(a int) int {
	if a < 0 {
		return a * -1
	}
	return a
}

func min(a, b int) int {
	if a < b {
		return a
	}
	return b
}

func max(a, b int) int {
	if a > b {
		return a
	}
	return b
}

func gcd(x, y int) int {
	if y == 0 {
		return x
	}
	return gcd(y, x%y)
}

const Mod = 1000000007

func ModComb(n, k int) int {
	if k == 0 {
		return 1
	}
	x, y := n, k
	for i := 1; i < k; i++ {
		x = x * (n - i) % Mod
		y = y * (k - i) % Mod
	}
	inv := ModInv(y)
	return x * inv % Mod
}

func ModFact(x int) int {
	fact := 1
	for i := 1; i <= x; i++ {
		fact = fact * i % Mod
	}
	return fact
}

func ModInv(x int) int {
	return ModPow(x, Mod-2)
}

func ModPow(a, n int) int {
	res := 1
	for n > 0 {
		if n%2 != 0 {
			res = res * a % Mod
		}
		a = a * a % Mod
		n /= 2
	}
	return res
}

func pow(a, n int) int {
	if n == 0 {
		return 1
	}

	ans := 0
	if n%2 == 0 {
		ans = pow(a*a, n/2)
	} else {
		ans = a * pow(a*a, (n-1)/2)
	}
	return ans
}

func main() {
	sc.Split(bufio.ScanWords)
	a, b, c := readInt(), readInt(), readInt()

	if a-b-c >= 0 {
		fmt.Println(0)
	} else {
		fmt.Println(c - (a - b))
	}
}


package main

import (
	"fmt"
)

func min(a, b int) int {
	if a < b {
		return a
	}
	return b
}
func main() {
	var a, b, c int
	fmt.Scan(&a, &b, &c)

	fmt.Println(min(0, c-(a-b)))
}


package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
)

var sc = bufio.NewScanner(os.Stdin)

func main() {
	sc.Split(bufio.ScanWords)

	a := nextInt()
	b := nextInt()
	c := nextInt()

	fmt.Println(c - (a - b))
}

// ---- readfunc
func nextInt() int {
	sc.Scan()
	i, e := strconv.Atoi(sc.Text())
	if e != nil {
		panic(e)
	}
	return i
}
func nextStr() string {
	sc.Scan()
	return sc.Text()
}


package main

import "fmt"

func main() {
	var a, b, c int
	fmt.Scan(&a, &b, &c)
	fmt.Println(c-(a-b))
}


str = gets.to_s.split(' ')
a = str[0].to_i
b = str[1].to_i
c = str[2].to_i

minus = a - b
ans = c - minus
ans = 0 if ans.negative?
p ans


a, b, c = gets.split.map(&:to_i)
if c-(a-b) <= 0
  puts 0
else
  puts c-(a-b)
end


a, b, c = gets.strip.split(' ').map(&:to_i)

ans = 0
if a - b < c then
    ans = c - a + b
end

puts(ans)


a,b,c=gets.split.map(&:to_i)
p c-a+b


a,b,c=gets.split.map &:to_i
puts b+c<=a? 0 :b-a+c


a,b,c=gets.split.map &to_i
puts b+c<=a? 0:b-a+c


use std::io;

fn main() {
	let mut buf = String::new();
	io::stdin().read_line(&mut buf).expect("");
	let mut iter = buf.split_whitespace();
	let a:i32 = match iter.next().unwrap().parse() {
		Ok(n) => n,
		_ => panic!(""),
	};
	let b:i32 = match iter.next().unwrap().parse() {
		Ok(n) => n,
		_ => panic!(""),
	};
	let c:i32 = match iter.next().unwrap().parse() {
		Ok(n) => n,
		_ => panic!(""),
	};

	if a-b >= c {
		println!("0");
	}else{
		println!("{}", c - (a-b));
	}
}


#[allow(unused_macros)]
macro_rules! input {
    (source = $s:expr, $($r:tt)*) => {
        let mut iter = $s.split_whitespace();
        let mut next = || { iter.next().unwrap() };
        input_inner!{next, $($r)*}
    };
    ($($r:tt)*) => {
        let stdin = std::io::stdin();
        let mut bytes = std::io::Read::bytes(std::io::BufReader::new(stdin.lock()));
        let mut next = move || -> String{
            bytes
                .by_ref()
                .map(|r|r.unwrap() as char)
                .skip_while(|c|c.is_whitespace())
                .take_while(|c|!c.is_whitespace())
                .collect()
        };
        input_inner!{next, $($r)*}
    };
}

#[allow(unused_macros)]
macro_rules! input_inner {
    ($next:expr) => {};
    ($next:expr, ) => {};

    ($next:expr, $var:ident : $t:tt $($r:tt)*) => {
        let $var = read_value!($next, $t);
        input_inner!{$next $($r)*}
    };
}

#[allow(unused_macros)]
macro_rules! read_value {
    ($next:expr, ( $($t:tt),* )) => {
        ( $(read_value!($next, $t)),* )
    };

    ($next:expr, [ $t:tt ; $len:expr ]) => {
        (0..$len).map(|_| read_value!($next, $t)).collect::<Vec<_>>()
    };

    ($next:expr, chars) => {
        read_value!($next, String).chars().collect::<Vec<char>>()
    };

    ($next:expr, usize1) => {
        read_value!($next, usize) - 1
    };

    ($next:expr, $t:ty) => {
        $next().parse::<$t>().expect("Parse error")
    };
}

#[allow(unused_macros)]
macro_rules! debug {
    ($($a:expr),*) => {
        eprintln!(concat!($(stringify!($a), " = {:?}, "),*), $($a),*);
    }
}

fn f(s: &[char]) -> bool {
    let m = s.len();
    for i in 0..m {
        if s[i] != s[m - 1 - i] {
            return false;
        }
    }
    true
}

use std::iter::Iterator;
use std::cmp;

fn main() {
    input! {
        a : i32,
        b : i32,
        c : i32,
    }

    let mut ans = c - (a - b);
    if ans < 0 { ans = 0;}

    println!("{}", ans);

}


use std::io::*;
use std::str::FromStr;

/*
The read function reads a string according to each one.
*/
fn read<T: FromStr>() -> T {
    let stdin = stdin();
    let stdin = stdin.lock();
    let token: String = stdin
        .bytes()
        .map(|c| c.expect("failed to read char") as char)
        .skip_while(|c| c.is_whitespace())
        .take_while(|c| !c.is_whitespace())
        .collect();
    token.parse().ok().expect("failed to parse token")
}

//main function
fn main() {
    let a: i32 = read();
    let b: i32 = read();
    let c: i32 = read();
    if b+c-a > 0{
	println!("{}",b+c-a);
    }else{
	println!("0");
    }
}


#[allow(unused_macros)]
macro_rules! input {
    (source = $s:expr, $($r:tt)*) => {
        let mut iter = $s.split_whitespace();
        let mut next = || { iter.next().unwrap() };
        input_inner!{next, $($r)*}
    };
    ($($r:tt)*) => {
        let stdin = std::io::stdin();
        let mut bytes = std::io::Read::bytes(std::io::BufReader::new(stdin.lock()));
        let mut next = move || -> String{
            bytes
                .by_ref()
                .map(|r|r.unwrap() as char)
                .skip_while(|c|c.is_whitespace())
                .take_while(|c|!c.is_whitespace())
                .collect()
        };
        input_inner!{next, $($r)*}
    };
}

#[allow(unused_macros)]
macro_rules! input_inner {
    ($next:expr) => {};
    ($next:expr, ) => {};

    ($next:expr, $var:ident : $t:tt $($r:tt)*) => {
        let $var = read_value!($next, $t);
        input_inner!{$next $($r)*}
    };
}

#[allow(unused_macros)]
macro_rules! read_value {
    ($next:expr, ( $($t:tt),* )) => {
        ( $(read_value!($next, $t)),* )
    };

    ($next:expr, [ $t:tt ; $len:expr ]) => {
        (0..$len).map(|_| read_value!($next, $t)).collect::<Vec<_>>()
    };

    ($next:expr, chars) => {
        read_value!($next, String).chars().collect::<Vec<char>>()
    };

    ($next:expr, usize1) => {
        read_value!($next, usize) - 1
    };

    ($next:expr, $t:ty) => {
        $next().parse::<$t>().expect("Parse error")
    };
}

#[allow(unused_macros)]
macro_rules! debug {
    ($($a:expr),*) => {
        eprintln!(concat!($(stringify!($a), " = {:?}, "),*), $($a),*);
    }
}

fn f(s: &[char]) -> bool {
    let m = s.len();
    for i in 0..m {
        if s[i] != s[m - 1 - i] {
            return false;
        }
    }
    true
}

use std::iter::Iterator;
use std::cmp;

fn is_odd(x: i32) -> bool {
    if x < 10 {
      return true;
    }
    if x < 100 {
      return false;
    }
    if x < 1000 {
      return true;
    }
    if x < 10000 {
      return false;
    }
    if x < 100000 {
      return true;
    }
    return false;
  }

fn main() {
    input! {
        n : i64,
    }

    let mut count = 0;
    for i in 1 .. n + 1 {
      if is_odd(i) {
        count += 1;
      }
    }

    println!("{}", count);

}


#[allow(unused_macros)]
macro_rules! input {
    (source = $s:expr, $($r:tt)*) => {
        let mut iter = $s.split_whitespace();
        let mut next = || { iter.next().unwrap() };
        input_inner!{next, $($r)*}
    };
    ($($r:tt)*) => {
        let stdin = std::io::stdin();
        let mut bytes = std::io::Read::bytes(std::io::BufReader::new(stdin.lock()));
        let mut next = move || -> String{
            bytes
                .by_ref()
                .map(|r|r.unwrap() as char)
                .skip_while(|c|c.is_whitespace())
                .take_while(|c|!c.is_whitespace())
                .collect()
        };
        input_inner!{next, $($r)*}
    };
}

#[allow(unused_macros)]
macro_rules! input_inner {
    ($next:expr) => {};
    ($next:expr, ) => {};

    ($next:expr, $var:ident : $t:tt $($r:tt)*) => {
        let $var = read_value!($next, $t);
        input_inner!{$next $($r)*}
    };
}

#[allow(unused_macros)]
macro_rules! read_value {
    ($next:expr, ( $($t:tt),* )) => {
        ( $(read_value!($next, $t)),* )
    };

    ($next:expr, [ $t:tt ; $len:expr ]) => {
        (0..$len).map(|_| read_value!($next, $t)).collect::<Vec<_>>()
    };

    ($next:expr, chars) => {
        read_value!($next, String).chars().collect::<Vec<char>>()
    };

    ($next:expr, usize1) => {
        read_value!($next, usize) - 1
    };

    ($next:expr, $t:ty) => {
        $next().parse::<$t>().expect("Parse error")
    };
}

#[allow(unused_macros)]
macro_rules! debug {
    ($($a:expr),*) => {
        eprintln!(concat!($(stringify!($a), " = {:?}, "),*), $($a),*);
    }
}

fn f(s: &[char]) -> bool {
    let m = s.len();
    for i in 0..m {
        if s[i] != s[m - 1 - i] {
            return false;
        }
    }
    true
}

use std::iter::Iterator;
use std::cmp;

fn main() {
    input! {
        a : i32,
        b : i32,
        c : i32,
    }

    let mut ans = c - (a - b);
    if ans < 0 { ans = 0;}

    println!("{}", ans;

}


#[allow(unused_macros)]
macro_rules! input {
    (source = $s:expr, $($r:tt)*) => {
        let mut iter = $s.split_whitespace();
        let mut next = || { iter.next().unwrap() };
        input_inner!{next, $($r)*}
    };
    ($($r:tt)*) => {
        let stdin = std::io::stdin();
        let mut bytes = std::io::Read::bytes(std::io::BufReader::new(stdin.lock()));
        let mut next = move || -> String{
            bytes
                .by_ref()
                .map(|r|r.unwrap() as char)
                .skip_while(|c|c.is_whitespace())
                .take_while(|c|!c.is_whitespace())
                .collect()
        };
        input_inner!{next, $($r)*}
    };
}

#[allow(unused_macros)]
macro_rules! input_inner {
    ($next:expr) => {};
    ($next:expr, ) => {};

    ($next:expr, $var:ident : $t:tt $($r:tt)*) => {
        let $var = read_value!($next, $t);
        input_inner!{$next $($r)*}
    };
}

#[allow(unused_macros)]
macro_rules! read_value {
    ($next:expr, ( $($t:tt),* )) => {
        ( $(read_value!($next, $t)),* )
    };

    ($next:expr, [ $t:tt ; $len:expr ]) => {
        (0..$len).map(|_| read_value!($next, $t)).collect::<Vec<_>>()
    };

    ($next:expr, chars) => {
        read_value!($next, String).chars().collect::<Vec<char>>()
    };

    ($next:expr, usize1) => {
        read_value!($next, usize) - 1
    };

    ($next:expr, $t:ty) => {
        $next().parse::<$t>().expect("Parse error")
    };
}

#[allow(unused_macros)]
macro_rules! debug {
    ($($a:expr),*) => {
        eprintln!(concat!($(stringify!($a), " = {:?}, "),*), $($a),*);
    }
}

fn f(s: &[char]) -> bool {
    let m = s.len();
    for i in 0..m {
        if s[i] != s[m - 1 - i] {
            return false;
        }
    }
    true
}

use std::iter::Iterator;
use std::cmp;

fn main() {
    input! {
        a : usize,
        b : usize,
        c : usize,
    }

    println!("{}", c - (a - b));

}


let arr=readLine()!.characters.split{$0==" "}.map{Int(String($0))!}
let a=arr[0]
let b=arr[1]
let c=arr[2]
let o = ( c - (a - b) )
print( o < 0 ? 0 : o )


func readInts() -> [Int] {
    return readLine()!.split(separator: " ").map { Int($0)! }
}

let abc = readInts()
let a = abc[0]
let b = abc[1]
let c = abc[2]
print(max(0,b+c-a))


func readInts() -> [Int] {
    return readLine()!.split(separator: " ").map { Int($0)! }
}

let abc=readInts()
let sum=abc[1]+abc[2]-abc[0]
if sum>=0{
  print(sum)
}else{
  print(0)
}


let n=Int(readLine()!)!
if 1<=n && n<=9{
  print(n)
}else if 101<=n && n<=999{
  print(9+n-100)
}else if 1001<=n && n<=9999{
  print(9+899+n-1000)
}else if 10001<=n && n<=99999{
  print(9+899+8999+n-10000)
}


func readInts() -> [Int] {
    return readLine()!.split(separator: " ").map { Int($0)! }
}

let abc=readInts()
print(abc[1]+abc[2]-abc[0])


func readInts() -> [Int] {
    return readLine()!.split(separator: " ").map { Int($0)! }
}

let abc = readInts()
let a = abc[0]
let b = abc[1]
let c = abc[2]
print(min(0,b+c-a))


// inputに入力データ全体が入る
function Main(input) {
	// 1行目がinput[0], 2行目がinput[1], …に入る
	input = input.split("\n");
	tmp = input[0].split(" ");
	//文字列から10進数に変換するときはparseIntを使います
	const a = parseInt(tmp[0], 10);
	const b = parseInt(tmp[1], 10);
  const c = parseInt(tmp[2], 10);
  const remain = c - (a - b);
	const result = remain < 0 ? 0 : remain;
	//出力
	console.log('%d',result);
}
//*この行以降は編集しないでください（標準入出力から一度に読み込み、Mainを呼び出します）

Main(require("fs").readFileSync("/dev/stdin", "utf8"));


((input: string): void => {
    const [a, b, c] = input.split(" ").map(Number);
    const hoge = c-(a-b);
    console.log(hoge > 0 ? hoge : 0);
})(require('fs').readFileSync('/dev/stdin', 'utf8'));


import * as fs from "fs";

const input = (fs.readFileSync("/dev/stdin", "utf8") as string).split("\n");
//const n = +input[0];
//const a = [];
//for(let i=0;i<n;i++){
//	a.push(input[i+1].split(" ").map((x:string):number=>+x));
//}

//const [n, m] = input[0].split(" ").map((x: string): number => +x);
//const a = input[1].split(" ").map((x: string): number => +x);

function compareFunc(a, b){
    return a-b;
}

const [a, b, c]: number[] = input[0].split(' ').map((x: string): number => +x);

const A: number = a-b;
if(c-A >= 0){
    console.log(c-A);
}else{
    console.log(0);
}


const main = (lines: string) => {
  const data: number = parseInt(lines, 10);
  let digits;
  let result = 0;

  for (let i = 1; i <= data; i++) {
    digits = String(i).length;
    if (digits % 2 === 1) {
      result += 1;
    }
  }

  console.log(result);
};

main(require("fs").readFileSync("/dev/stdin", "utf8"));


const main = (lines: string) => {
  const data: number = parseInt(lines, 10);
  let digits;
  let result = 0;

  for (let i = 1; i <= data; i++) {
    digits = String(i).length;
    if (digits % 2 === 1) {
      result += 1;
    }
  }

  console.log(String(result));
};

main(require("fs").readFileSync("/dev/stdin", "utf8"));


S = list(input())
K = int(input())
for i in range(K):
    if S[i] != "1":
        print(S[i])
        break
else:
    print("1")


S=input()
K=int(input())
flag=0
for i in range(K):
    if S[i]!='1':
        print(S[i])
        flag=1
        break
if flag==0:
    print(1)


S = input()
K = int(input())
if S[0]*len(S) == S and S[0] == "1":
    print("1")
else:
    ans = 0
    ind = 0
    for i in range(len(S)):
        if S[i] != "1":
            ans = S[i]
            ind = i+1
            break
    if ind > K:
        print("1")
    else:
        print(ans)


#-*-coding:utf-8-*-
import sys
input=sys.stdin.readline

def main():
    s = input().rstrip()
    k = int(input())

    for i in s:
        if int(i) !=1:
            print(i)
            exit()
        else:
            continue
    print(1)

if __name__=="__main__":
    main()


# import sys
# sys.setrecursionlimit(10 ** 6)
# import bisect
# from collections import deque
# from decorator import stop_watch
#
#
# @stop_watch
def solve(S, N):
    ans = ''
    if N == 1:
        ans = S[0]
    else:
        if int(S[0]) == 1:
            ans = S[1]
        else:
            ans = S[0]
    print(ans)

if __name__ == '__main__':
    S = input()
    N = int(input())
    # N, M = map(int, input().split())
    # A = [int(i) for i in input().split()]
    # B = [int(i) for i in input().split()]
    # AB = [[int(i) for i in input().split()] for _ in range(N)]
    solve(S, N)

    # # test
    # from random import randint
    # from func import random_str
    # solve()


s = input()
k = int(input())

if k == 1 or len(s) == 1:
    ans = list(s)[0]
else:
    ans = None
    for i, j in enumerate(list(s)):
        if j != '1' and i < k:
            ans = j
            break
        elif i >=k :
            ans = '1'
            break
        else:
            continue

if ans is None:
    ans = '2'
print(ans)


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) {
        try {
            // 標準入力
            InputStreamReader isr = new InputStreamReader(System.in);
            BufferedReader br = new BufferedReader(isr);
            String s = br.readLine();
            long k = Long.parseLong(br.readLine());
            int ans = 1;
            for (int i = 0; i < s.length(); i++) {
                int tempNum = Integer.parseInt(s.substring(i, i + 1));
                if (tempNum != 1) {
                    ans = tempNum;
                    break;
                } else {
                    if (k == i + 1) {
                        break;
                    }
                }
            }
            System.out.println(ans);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}


import java.util.*;
import java.io.*;

public class Main {
    public static String S;
    public static int ans(int start,long left){
        if(S.charAt(start)-'0'!=1){
            return S.charAt(start)-'0';
        }
        if (left == 0) {
            return S.charAt(start) - '0';
        }
        return ans(start+1,left-1);
    }
    public static void main(String[] args)throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        S = br.readLine();
        long K = Long.parseLong(br.readLine());
        System.out.println(ans(0,K-1));
    }
}


import java.io.*;
import java.util.*;

import static java.lang.Math.*;

public class Main {

    public static void main(String[] args) {
        try (CustomReader in = new CustomReader()) {
            new Main().execute(in);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public void execute(CustomReader in) throws IOException {
        final String S = in.readLine();
        final long K = Long.parseLong(in.readLine());
        char ans = '1';

        for (int i = 0; i < K && i< S.length(); i++) {
            if(S.charAt(i) != '1'){
                ans = S.charAt(i);
                break;
            }
        }
        System.out.println(ans);
    }

    static class CustomReader extends BufferedReader {
        public CustomReader() throws IOException {
            super(new InputStreamReader(System.in));
        }

        public int readLineAsInt() throws IOException {
            return Integer.parseInt(readLine());
        }

        public int[] readLineAsIntArray() throws IOException {
            String[] strArray = this.readLine().split(" ");
            int[] intArray = new int[strArray.length];
            for (int i = 0, n = strArray.length; i < n; i++) {
                intArray[i] = Integer.parseInt(strArray[i]);
            }
            return intArray;
        }

        public int[][] readAsIntMatrix(int rows, int columns) throws IOException {
            int[][] matrix = new int[rows][columns];
            for (int i = 0; i < rows; i++) {
                String[] r = this.readLine().split(" ");
                for (int j = 0; j < columns; j++) {
                    matrix[i][j] = Integer.parseInt(r[j]);
                }
            }
            return matrix;
        }

        public char[][] readAsCharMatrix(int rows) throws IOException {
            char[][] matrix = new char[rows][];
            for (int i = 0; i < rows; i++) {
                matrix[i] = this.readLine().toCharArray();
            }
            return matrix;
        }

    }

}


import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		char[] S = sc.next().toCharArray();
		long K = sc.nextLong();
		for (int i = 0; i < S.length; i++) {
			if (S[i] != '1') {
				System.out.println(S[i]);
				break;
			}else {
				if (i == K) {
					System.out.println(S[i]);
					break;
				}
			}
		}

	}
}


import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		char[] S = sc.next().toCharArray();
		long K = sc.nextLong();

		for (int i = 0; i < S.length; i++) {
			if (S[i] != '1') {
				System.out.println(S[i]);
				break;
			}
		}

	}
}


import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s = sc.next();
        long k = sc.nextLong();
        if(s.length() == 1) {
            System.out.println(s);
            return;
        }
        String one = s.substring(0, 1);
        String two = s.substring(1, 2);
        if(!one.equals("1")) {
            System.out.println(one);
        } else {
            System.out.println(two);
        }
    }
}


#include<stdio.h>
int main(){
    long long k;
    char s[110];
    scanf("%s%lld",s,&k);
    for(int i=0;i<k;i++){
        if(s[i]!='1'){
            putchar(s[i]);
            return 0;
        }
    }
    puts("1");
    return 0;
}


#include <iostream>
#include <string>
#include <algorithm>
#include <sstream>
#include <cmath>
using namespace std;

int main(){
    string S;
    long long K;
    cin >> S >> K;

    long long cnt = 0;
    int sums = 0;
    int oneCnt=0;
    for(int i=0;i<S.size();i++){
        if(S[i] == '1'){
            oneCnt++;
            if(oneCnt == K){
                cout << 1 << endl;
                break;
            }
        }
        else if(S[i] != '1'){
            cout << S[i] << endl;
            break;
        }
    }
}


#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

int main(void){
    string s; cin >> s;
    ll k; cin >> k;

    s+='0';
    for(ll i=0; i<k; i++){
        if(s[i]=='0'){
            cout << '1' << endl;
            return 0;
        }

        if(s[i]!='1'){
            cout << s[i] << endl;
            return 0;
        }
    }

    cout << '1' << endl;
}