jiahuimbzuai/CoQuIR huggingface dataset:
//  [typescript]
const main = (input: string) => {
  const S = input.trim().split("");
  const X = 753;
  let sumArr = [];

  for (let i = 0; i < S.length - 2; i++) {
    sumArr.push(Math.abs(X - parseInt(S[i] + S[i + 1] + S[i + 2])));
  }

  console.log(Math.min(...sumArr))
}

main(require('fs').readFileSync('/dev/stdin', 'utf8'));
//  [typescript]
import * as fs from 'fs';

namespace AtCoder.abc114 {

    class Program {

        /**
         * in
         *  1234567876
         * out
         *  34
         */
        main(inp: string): void {

            let ans: number = 99999;

            let wk: string = '';
            inp.split('').forEach(x => {
                wk += x;

                if (wk.length === 4) {
                    wk = wk[1] + wk[2] + wk[3];
                }

                if (wk.length === 3) {
                    let abs: number = Math.abs(753 - parseInt(wk));
                    if (ans > abs) {
                        ans = abs;
                    }
                }
            });

            console.log(ans);

        }
    }

    const func = new Program();
    func.main(fs.readFileSync('/dev/stdin', 'utf8').trim());
}
//  [typescript]
const t={input:require('fs').readFileSync('/dev/stdin','utf8').split(/[\s]/),n:(arg:number=0):any=>{if(arg){const a=[];for(let i=0;i<arg;i++){a.push(t.n())}return a}else{const a=t.input[0];t.input.shift();return Number(a)}},s:(arg:number=0):any=>{if(arg){const a=[];for(let i=0;i<arg;i++){a.push(t.s())}return a}else{const a=t.input[0];t.input.shift();return String(a)}},c:(arg:number=0):any=>{if(arg){const a=[];for(let i=0;i<arg;i++){a.push(t.c())}return a}else{let a=t.input[0].split('');const b=a[0];a.shift();if(a.length>0){t.input[0]=a.join('')}else{t.input.shift()}return String(b)}},o:(...arg)=>{console.log(...arg)},abs:(a)=>{return Math.abs(a)},min:(...a)=>{return Math.min(...a)},max:(...a)=>{return Math.max(...a)},floor:(a)=>{return Math.floor(a)},asc:(ar:number[])=>{return ar.sort((a,b)=>{return a-b})},desc:(ar:number[])=>{return ar.sort((a,b)=>{return b-a})},sw:(a,arr:any[],op:'=='|'>='|'>'|'<='|'<'='==')=>{for(let i=0;i<arr.length;i+=2){if(eval(a+op+arr[i]))return arr[i+1];}return arr[arr.length-1]}};
const main=()=>{
  let s=t.s()
  let ans=1000;
  for(let i=0;i<s.length-2;i++)ans=t.min(t.abs(753-Number(s[i]+s[i+1]+s[i+2])),ans)
  t.o(ans)
}
main()
//  [typescript]
s=require("fs").readFileSync("/dev/stdin","utf8");
a = [...Array(s.length-2)].map((_,i)=>Math.abs((s.slice(i,i+3)|0)-753))
Math.min.apply(null,a);
//  [typescript]
s=String(require("fs").readFileSync("/dev/stdin","utf8"));
Math.min.apply(null,[...Array(s.length-2)].map((_,i)=>Math.abs((s.slice(i,i+3)|0)-753)));
//  [typescript]
s=require("fs").readFileSync("/dev/stdin","utf8");
Math.min.apply(null,[...Array(s.length-2)].map((_,i)=>Math.abs((s.slice(i,i+3)|0)-753)));
//  [python]
n = int(input())

if n < 10:
    print(n)

elif n < 100:
    print(9)
elif n < 1000:
    print(9 + n-100+1)
elif n < 10000:
    print(9+999-100+1)
elif n < 100000:
    print(9+999-100+1 +n-10000+1)
elif n == 100000:
    print(90909)
//  [python]
N = int(input())
if N<10:
    print(N)
elif N >= 10 and N < 100:
    print(9)
elif N >= 100 and N < 1000:
    print(N-90)
elif N >= 1000 and N < 10000:
    print(909)
elif N >= 10000 and N < 100000:
    print(N - 9090)
else:
    print(90909)
//  [python]
N = int(input())
s = [9,900,90000]
l = len(str(N))
if l ==6:
    print(sum(s))
elif l == 5:
    print(sum(s[:2])+N-9999)
elif l == 4:
    print(sum(s[:2]))
elif l == 3:
    print(sum(s[:1])+N-99)
elif l == 2:
    print(s[0])
else:
    print(N)
//  [python]
n = int(input())
a = 0
for i in (1, n+1):
  if len(str(i)) % 2 == 1:
    a += 1
print(a)
//  [python]
n = int(input())
l = len(str(n))
if l == 2:
  print(9)
elif l == 4:
  print(909)
elif l == 6:
  print(90909)
elif l == 1:
  print(n)
elif l == 3:
  print(n-90)
elif l == 5:
  print(n-8090)
//  [python]
n = int(input())
l = len(str(n))
if l == 2:
  print(9)
elif l == 4:
  print(909)
elif l == 6:
  print(90909)
elif l == 1:
  print(n)
elif l == 3:
  print(n-90)
elif l == 5:
  print(n-8091)
//  [java]
import java.io.*;

/**
 * Created by Ayushi on 04/08/2019.
 */

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
        String[] temp = r.readLine().split(" ");
        int n = Integer.parseInt(temp[0]);
        r.close();
        int ans = 0;
        int i;
        for (i = 1; i*10 <= n; i=i*100) {
            ans += (i*9);
        }
        ans += Math.max(n-i+1, 0);

        System.out.println(ans);
    }
}
//  [java]
import java.io.*;

public class Main{
  public static void main(String[] args) throws Exception{
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String numStr = br.readLine();
    int n = Integer.parseInt(numStr);
    int result = 0;
    
    for(int i=numStr.length()-1; 0<i; i--) if( i%2 == 1 )
      result += (int)(Math.pow(10, i)-Math.pow(10, i-1));
    if( numStr.length() % 2 == 1 )
      result += n - Math.pow(10, numStr.length()-1) + 1;
    
    System.out.println(result);
  }
}
//  [java]
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		 Scanner sc = new Scanner(System.in);
		 int N = sc.nextInt();
		 int count = 0;
		 for(int i=0; i<N; i++) {
			 if(String.valueOf(i).length() %2 != 0) {
				 count++;
			 }
		 }
		 System.out.println(count);
	}
}
//  [java]
import java.util.*;
public class Main{
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    int ans;
    if(n<9){
      ans = n;
    }else if(n<100){
      ans = 9;
    }else if(n<1000){
      ans = 9+n-99;
    }else if(n<10000){
      ans = 909;
    }else if(n<100000){
      ans = 999+n-9999;
    }else{
      ans = 90909;
    }
    System.out.println(ans);

  }
}
//  [java]
import java.util.Scanner;

public class Main096 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int ans = 0;
        for(int i=1; i<=n; i++) {
            int nn = Integer.toString(i).length();
            if(nn % 2 != 0) ans++;
        }
        System.out.println(ans);
    }
}
//  [cpp]
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <climits>
#include <vector>
#include <algorithm>
#include <functional>

using namespace std;

int main()
{
    int N;
    scanf("%d\n",&N);

    int res=0;
    for(int d=10; d/10<=N; d*=100)
    {
        if(N/d==0){ res+=N-(d/10-1); }
        else{ res+=(d-1)-(d/10-1); }
    }

    printf("%d\n",res);
    return 0;
}
//  [cpp]
#include <bits/stdc++.h>
using namespace std;
typedef signed long long ll;

#undef _P
#define _P(...) (void)printf(__VA_ARGS__)
#define FOR(x,to) for(x=0;x<(to);x++)
#define FORR(x,arr) for(auto& x:arr)
#define ITR(x,c) for(__typeof(c.begin()) x=c.begin();x!=c.end();x++)
#define ALL(a) (a.begin()),(a.end())
#define ZERO(a) memset(a,0,sizeof(a))
#define MINUS(a) memset(a,0xff,sizeof(a))
//-------------------------------------------------------

int N;

void solve() {
	int i,j,k,l,r,x,y; string s;
	
	int cnt=0;
	
	cin>>N;
	for(i=1;i<=9;i++) if(i<=N) cnt++;
	for(i=100;i<=999;i++) if(i<=N) cnt++;
	for(i=10000;i<=99999;i++) if(i<=N) cnt++;
	cout<<cnt<<endl;
}



int main(int argc,char** argv){
	string s;int i;
	if(argc==1) ios::sync_with_stdio(false), cin.tie(0);
	FOR(i,argc-1) s+=argv[i+1],s+='\n'; FOR(i,s.size()) ungetc(s[s.size()-1-i],stdin);
	cout.tie(0); solve(); return 0;
}
//  [cpp]
#include <iostream>
#include <string>

using namespace std;

int main()
{
	int n;
	cin >> n;

	int digits = 0;

	for (int i = 1; i <= n; i++)
	{
		if (i >= 1 && i <= 9)
			digits += 1;

		if (i >= 100 && i <= 999)
			digits += 1;

		if (i >= 10000 && i <= 99999)
			digits += 1;

		if (i >= 1000000 && i <= 9999999)
			digits += 1;
	}

	cout << digits;

	return 0;
}
//  [cpp]
#include <bits/stdc++.h>

using namespace std;

#define FOR(i, m, n) for (int i = m; i < n; ++i)
#define FORD(i, m, n) for (int i = m; i >= n; --i)
#define REP(i, n) for (int i = 0; i < n; ++i)
#define REP1(i, n) for (int i = 0; i <= n; ++i)
#define REPR(i, n) for (int i = n; i >= 0; --i)
#define EPS (1e-7)
#define INF (1e9)
#define PI (acos(-1))

using ll = long long;
using ull = unsigned long long;
using ld = long double;

int main()
{
	cin.tie(0);
	ios::sync_with_stdio(false);

	int n;
	cin>>n;
	if(n<10)cout << n << endl;
	else if(n<100)cout << 9 << endl;
	else if(n<1000)cout << n-90 << endl;
	else if(n<10000)cout << 909 << endl;
	else if(n<=100000)cout << n-10000+909 << endl;

	return 0;
}
//  [cpp]
#include<stdio.h>
int main() 
{
 int x,i;
 scanf("%d",&x);
 for(i=1;i<=x;i++)
 { 
    int n;
    scanf("%d",&n);
 
   if(n>0)
   n=n+2;
   printf("%d ",n);
 } 
return 0;
}
//  [c]
#include <stdio.h>

int main(){
  int n;
  scanf("%d", &n);
  int ans;
  if(n < 10){
    ans = n;
  }else if(n < 100){
    ans = 9;
  }else if(n < 1000){
    ans = 9 + n - 99;
  }else if(n < 10000){
    ans = 909;
  }else if(n < 100000){
    ans = 909 + n - 9999;
  }else{
    ans = 90909;
  }
  printf("%d\n", ans);
  return 0;
}
//  [c]
#include<stdio.h>

int main(void){
    int N;
    scanf("%d",&N);

    if(1<=N && N<=9){
        printf("%d",N);
    }else if(9<N && N<100){
        printf("9");
    }else if(100<=N && N<=999){
        printf("%d",N-90);
    }else if(999<N && N<10000){
        printf("909");
    }else if(10000<=N && N<=99999){
        printf("%d",N-9090);
    }else{
        printf("90909");
    }

    return 0;
}
//  [c]
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>

int N;

int dk(int i) {
	int ret;

	for (ret=0; i>0; ret++) {
		i/=10;
	}
	return ret;
}
		
int main(int argc, char *argv[]) {
	int sr;
	int ret=0;

	sr=scanf("%d", &N);

//printf("%d\n", dk(N));

// 1桁:9個
// 3桁:100～999: 900個
// 5桁:10000～99999: 90000個
	switch(dk(N)) {
	case 1: ret=N; break;
	case 2: ret=9; break;
	case 3: ret=909-999+N; break;
	case 4: ret=909; break;
	case 5: ret=90909-99999+N; break;
	case 6: ret=90909; break;
	}

	printf("%d\n", ret);
	fflush(stdout);

	return 0;

}
//  [c]
#include <stdio.h>
int main()
{
  int a,b;
  scanf("%d",&n);
  if(a>=1&&a<=9)
  {
   b=n-0;
   printf("%d\n",b);
  }
  else if(a>=10&&a<=99)
  {
    b=9;
    printf("%d\n",b);
  }
  else if(a>=100&&a<=999)
  {
    b=(a-100)+1+9;
    printf("%d\n",b);
  }
  else if(a>=1000&&a<=9999)
  {
    b=(999-100)+1+9;
    printf("%d\n",b);
  }
  else if(a>=10000&&a<=99999)
  {
    b=(999-100)+1+9+(a-10000)+1;
    printf("%d\n",b);
  }
  else if(a>=100000&&a<=999999)
  {
    b=(999-100)+1+9+(99999-10000)+1;
    printf("%d\n",b);
  }
  return 0;
}
//  [c]

#include<stdio.h>
int main()
{
    int i,j,k;
    scanf("%d",&i);
    if(i >= 1 && i <= 9)
    {
        printf("%d\n",i);
    }
    else if(i >= 10 && i <= 99)
    {
        printf("9\n");
    }
    if(i >= 100 && i <= 999)
    {
        j = (i - 100) + 1;
        k = i + 9;
        printf("%d\n",k);
    }
    else if(i >= 1000 && i <= 9999)
    {
        printf("%909\n");
    }
    else if(i >= 10000 && i <= 99999)
    {
        j = (i - 10000) + 1;
        k = i + 900 + 9;
        printf("%d\n",k);
    }
    else if(i >= 100000 && i <= 999999)
    {
        printf("%90909\n");
    }
    return 0;
}
//  [c]
#include <stdio.h>
int main()
{
  int n,x;
  scanf("%d",&n);
  if(n>=1&&n<=9)
  {
   x=n-0;
   printf("%d",x);
  }
  else if(n>=10&&n<=99)
  {
    x=9;
    printf("%d\n",x);
  }
  else if(n>=100&&n<=999)
  {
    x=(n-100)+1+9;
    printf("%d\n",x);
  }
  else if(n>=1000&&n<=9999)
  {
    x=(999-100)+1+9;
    printf("%d\n",x);
  }
  else if(n>=10000&&n<=99999)
  {
    x=(999-100)+1+9+(n-10000)+1;
    printf("%d\n",x);
  }
  else if(n>=100000&&n<=999999)
  {
    x=(999-100)+1+9+(999999-100000)+1;
    printf("%d\n",x);
  }
  return 0;
}
//  [javascript]


function Main(input) {
  input = input.split("\n");
  var N = parseInt(input[0]);
  var ans =0;
  for(var i =0;i<6;i++){
    if(N>=Math.pow(10,i)){
      if(i%2==1){
        ans+=Math.pow(10,i)-1;
      }else{
        ans-=Math.pow(10,i)-1;
      }
    }else{
      if(i%2==1){
        ans+=N;
        break;
      }else{
        break;
      }
    }
  }

  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"));
//  [javascript]
"use strict";

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

const N = Number(input);
const main = N => {
  const digit = String(N).length;
  switch (digit) {
    case 1:
      // 1桁の場合 => 数値そのもの
      return N;
      break;
    case 2:
      // 2桁の場合 => 9
      return 9;
      break;
    case 3:
      // 3桁の場合 => 9 + 数値そのもの + 1
      return 9 + 1 + (N - 100);
      break;
    case 4:
      // 4桁の場合 => 9 + 900
      return 9 + 900;
      break;
    case 5:
      // 5桁の場合 => 9 + 900 + 数値そのもの + 1
      return 9 + 900 + 1 + (N - 10000);
      break;
    case 6:
      // 6桁の場合 => 9 + 900 + 90000
      return 9 + 900 + 90000;
      break;
  }

  return N;
};

console.log(main(N));
//  [javascript]
"use strict";
const Main = (input) =>{
   let xs = input.trim().split('');
   let xs1 = input.trim().split(' '); 
   if(xs.length == 1){
   console.log(xs1[0]);
   }else if(xs.length == 2){
   console.log(9);
   }else if(xs.length == 3){
   console.log(xs1[0]-99 + 9);
   }else if(xs.length == 4){
   console.log(909);
   }else if(xs.length == 5){
   console.log(xs1[0]-9999 + 909);
   }else if(xs.length == 6){
   console.log(90909);
   }      
}
Main(require('fs').readFileSync('/dev/stdin','utf8'));
//  [javascript]
"use strict"
const create = () => {
    const input = require("fs").readFileSync("/dev/stdin", "utf8").trim().split("\n");
    const res = {
        "list": input, "index": 0, "max": input.length,
        "hasNext": function() {return this.index < this.max},
        "next": function() { if (!this.hasNext()) {throw "ArrayIndexOutOfBoundsException";}else{return this.list[this.index++];}}
    };
    return res;
}
const o = create();
const next = () => o.next()
const nextInt = () => parseInt(o.next())
const nextStrArray = () => o.next().split(" ")
const nextIntArray = () => o.next().split(" ").map(el => parseInt(el))
const nextCharArray = () => o.next().split("")
const hasNext = () => o.hasNext()
const myout = (...x) => console.log(...x)
const Main = () => {
    let n = nextInt()
    const digit = (x) => String(x).split(" ").length
    let cnt = 0
    for(let i = 1; i<= n; i++){
        let tmp = digit(i)
        if(tmp % 2 !== 0) cnt++
    }
    console.log(cnt)
}
Main()
//  [javascript]
"use strict"
const create = () => {
    const input = require("fs").readFileSync("/dev/stdin", "utf8").trim().split("\n");
    const res = {
        "list": input, "index": 0, "max": input.length,
        "hasNext": function() {return this.index < this.max},
        "next": function() { if (!this.hasNext()) {throw "ArrayIndexOutOfBoundsException";}else{return this.list[this.index++];}}
    };
    return res;
}
const o = create();
const next = () => o.next()
const nextInt = () => parseInt(o.next())
const nextStrArray = () => o.next().split(" ")
const nextIntArray = () => o.next().split(" ").map(el => parseInt(el))
const nextCharArray = () => o.next().split("")
const hasNext = () => o.hasNext()
const myout = (...x) => console.log(...x)
const Main = () => {
    let n = nextInt()
    const digit = (x) => String(x).split(" ").length
    let cnt = 0
    for(let i = 0; i<= n; i++){
        let tmp = digit(i)
        if(tmp % 2 !== 0) cnt++
    }
    console.log(cnt)
}
Main()
//  [javascript]
'use strict';
function main(input) {
  const arr = input.trim().split('\n');
  const a = Number(arr[0]);
  let count = 0;

  for (let i = 0; i < a; i ++) {
    if (String(i).length % 2 !== 0) {
      count ++;
    }
  }
  
  console.log(count);
}

main(require("fs").readFileSync("/dev/stdin", "utf8"));
//  [go]
package main

import "fmt"

func main() {
	var N int
	fmt.Scanf("%d", &N)
	count := 0
	for i := 1; i <= N; i++ {
		if 1 <= i && i < 10 || 100 <= i && i < 1000 || 10000 <= i && i < 100000 {
			count++
		}
	}
	fmt.Println(count)
}
//  [go]
package main

import (
  "fmt"
  "strconv"
)

func pow(args ...int) int {
  x, y := args[0], args[1]
  res := 1
  if len(args) == 3 {
    mod := args[2]
    for y != 0 {
      if y & 1 == 1 {res = res * x % mod}
      y >>= 1
      x = x * x % mod
    }
  }  else {
    for y != 0 {
      if y & 1 == 1 {res *= x}
      y >>= 1
      x *= x
    }
  }
  return res
}

func main() {
  var n int 
  fmt.Scan(&n)
  l := len(strconv.Itoa(n))
  cnt := 0
  for i := 0; i < l; i += 2 {
    if i == l - 1 {
      cnt += n - pow(10, i) + 1
    } else {
      cnt += pow(10, i + 1) - pow(10, i)
    }
    
  }
  fmt.Println(cnt)
}
//  [go]
package main

import (
    "fmt"
    "math"
)


func main() {
    var N int 
    len, ans := 0, 0

    fmt.Scan(&N)
    for tmp:=N;tmp>0;tmp,len=tmp/10,len+1 {}
    
    if len%2==1 {
        ans+=N
    }
    len--
    
    for i := len; i > 0; i-- {
        if i%2==1 {
            ans+=int(math.Pow10(i))-1
        }else{
            ans-=int(math.Pow10(i))-1            
        }
    }
fmt.Println(ans)
}
//  [go]
package main

import (
  "fmt"
)

func num(n int) int {
   count := 1
  for n >= 10 {
    n = n / 10
    count += 1
  }
  return count
}

func main(){
  var N int
  fmt.Scan(&N)
  
  result := 0
  for i := 1; i < N; i++ {
    if num(i) % 2 != 0 {
      result += 1
    }
  }
  fmt.Println(result)
}
//  [go]
package main

import (
  "fmt"
)

func main(){
  var n int
  fmt.Scan(&n)
  
  count := 1
  for n >= 10 {
    n = n / 10
    count += 1
  }
  fmt.Println(count)
}
//  [go]
package main

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

var sc = bufio.NewScanner(os.Stdin)

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

func iScan() int {
	n, _ := strconv.Atoi(Scan())
	return n
}

func fScan() float64 {
	n, _ := strconv.ParseFloat(Scan(), 64)
	return n
}
func stringToInt(s string) int {
	n, _ := strconv.Atoi(s)
	return n
}
func SScan(n int) []string {
	a := make([]string, n)
	for i := 0; i < n; i++ {
		a[i] = Scan()
	}
	return a
}
func iSScan(n int) []int {
	a := make([]int, n)
	for i := 0; i < n; i++ {
		a[i] = iScan()
	}
	return a
}
func abs(x int) int {
	if x < 0 {
		x = -x
	}
	return x
}
func larger(a, b int) int {
	if a < b {
		return b
	} else {
		return a
	}
}
func smaller(a, b int) int {
	if a > b {
		return b
	} else {
		return a
	}
}
func max(a []int) int {
	x := a[0]
	for i := 0; i < len(a); i++ {
		if x < a[i] {
			x = a[i]
		}
	}
	return x
}
func min(a []int) int {
	x := a[0]
	for i := 0; i < len(a); i++ {
		if x > a[i] {
			x = a[i]
		}
	}
	return x
}
func sum(a []int) int {
	x := 0
	for _, v := range a {
		x += v
	}
	return x
}

var mod int = 1000000007

func main() {
	buf := make([]byte, 0)
	sc.Buffer(buf, mod)
	sc.Split(bufio.ScanWords)
	n := iScan()
	ans := 0
	for i := 1; i < n; i++ {
		if len(strconv.Itoa(i))%2 == 1 {
			ans++
		}
	}
	fmt.Println(ans)
}
//  [ruby]
N = gets.chomp
case N.length
when 1
  puts N.to_i
when 2
  puts 9
when 3
  puts N.to_i - 99 + 9
when 4
  puts 999 - 99 + 9
when 5
  puts N.to_i - 9999 + 909
when 6
  puts 99999 - 9999 + 909
end
//  [ruby]
N = gets.chomp.to_i
a = 0
if N < 10
    puts N
elsif N < 100
    puts 9
elsif N < 1000
    a = 9 + (N-99)
    puts a
elsif N < 10000
    puts 909
elsif N < 100000
    a = 909 + (N-9999)
    puts a
else
    puts 90909
end
//  [ruby]
N = gets.strip.to_i
ans=0
if N<=9
    ans=N
elsif N<=99
    ans=9
elsif N<=999
    ans=9+N-100+1
elsif N<=9999
    ans+=9+900
elsif N<=99999
    ans+=9+900+N-10000+1
else
    ans+=9+900+90000
end
puts ans
//  [ruby]
c=0
(1..gets.to_i).each{|i|c+=1 if i%2!=0}
p c
//  [ruby]
c=0
(1..gets.to_i).each{|i|c+=1 if i%2==0}
p c
//  [ruby]
c=0
(1..gets.to_i).each do |i|
  next if i.to_s.size%2!=0
  c+=1
end
p c
//  [rust]
macro_rules! input {
    (source = $s:expr, $($r:tt)*) => {
        let mut iter = $s.split_whitespace();
        input_inner!{iter, $($r)*}
    };
    ($($r:tt)*) => {
        let 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")
    };
}

pub fn digit_num(mut n: u64) -> u64 {
    let mut keta = 0;
    let d = 10;
    while n != 0 {
        keta += 1;
        n /= d;
    }
    keta
}

fn main() {
    input! {
        n: u64
    }
    let mut cnt = 0;
    for i in 1..n+1 {
        let k = digit_num(i);
        if k % 2 != 0 {
            cnt += 1;
        }
    }
    println!("{}", cnt);
}
//  [rust]
#[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 : i32,
    }

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

}
//  [rust]
use std::io::Read;
 
fn main() {
    let mut buf = String::new();
    let stdin = std::io::stdin();
    stdin.lock().read_to_string(&mut buf).unwrap();
    let mut iter = buf.split_whitespace();
    let n = iter.next().unwrap().parse::<usize>().unwrap();

    if n < 100 {
        println!("{}", std::cmp::min(9, n));
    } else if n < 1000 {
        println!("{}", std::cmp::min(999-99+9, n-99+9));
    } else {
        println!("{}", std::cmp::min(99999-9999+999-99+9, n-9999+999-99+9));
    }
}
//  [rust]
use std::io::Read;
 
fn main() {
    let mut buf = String::new();
    let stdin = std::io::stdin();
    stdin.lock().read_to_string(&mut buf).unwrap();
    let n = buf.parse::<usize>().unwrap();

    if n < 100 {
        println!("{}", std::cmp::min(9, n));
    } else if n < 1000 {
        println!("{}", std::cmp::min(999-99+9, n-99+9));
    } else {
        println!("{}", std::cmp::min(99999-9999+999-99+9, n-9999+999-99+9));
    }
}
//  [rust]
#[allow(unused_imports)]
use proconio::{fastout, input};

#[fastout]
fn main() {
    input!(n: usize);
    let mut count = 0;
    let mut div = 1;
    loop {
        if n / div >= 1 {
            if n < div * 10 {
                count += (n % (div)) + 1;
            } else {
                count += div * 9;
            }
        } else {
            break;
        }
        div *= 100;
    }
    println!("{}", count);
}
//  [swift]
import Foundation

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

let nb=readInts()
let n=nb[0]

var i:Double=1
var ans=0

while(i<=Double(n)){
  if(Int(log10(i))%2==0) {ans+=1}
  i+=1
}
print(ans)
//  [swift]
let n = Int(readLine()!)!

var result = 0

var power = 1

while power <= n {
    let limit = min(10 * power - 1, n)
    result += limit - power + 1
    power *= 100
}

print(result)
//  [swift]
let n=Int(readLine()!)!
var count=0
for i in 1...n{
  if (String(i).count)%2==1{
    count+=1
  }
}
print(count)
//  [swift]
import Foundation

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

let reader=readInts()
let n:Double=Double(reader[0])
var ans:Double=0

var i:Double=1
var num:Double=9
while(i<=log10(n)){
  ans+=num
  num*=100
  i+=2
}

var comp=1
i=1
while(i<=log10(n)){
  comp*=10
  i+=1
}

if Int(log10(n))%2==0 {ans+=(Double(Int(n)%comp))+1}

print(Int(ans))
//  [swift]
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)
}
//  [swift]
let n = Int(readLine()!)!

var result = 0

var power = 1

while power <= n {
    let limit = min(power, n)
    result += limit - power
    power *= 100
}

print(result)
//  [typescript]
import * as fs from "fs"
const process = (n: number): string => {
  const a1 = 9
  const a3 = 999 - 100 + 1
  const a5 = 99999 - 10000 + 1
  const l = (n + "").length
  if (l === 2) {
    return a1 + ""
  }
  if (l === 4) {
    return a1 + a3 + ""
  }
  if (l === 6) {
    return a1 + a3 + a5 + ""
  }

  if (l === 1) {
    return n + ""
  }
  if (l === 3) {
    return a1 + (n - 100 + 1) + ""
  }
  // if (l === 5)
  return a1 + a3 + (n - 10000 + 1) + ""
}

const Main = (input: string): string => {
  const n: number = parseInt(input)

  const res = process(n) + ""
  console.log(res)
  return res
}
Main(fs.readFileSync("/dev/stdin", "utf8"))
//  [typescript]
function main(input: string) {
  const lines = input.trim().split('\n')

  const [n] = lines[0].split(' ').map(Number)
  let res = 0
  for (let i = 1; i <= n; i++) {
    if (i >= 100000) {
    } else if (i >= 10000) {
      res += 1
    } else if (i >= 1000) {
    } else if (i >= 100) {
      res += 1
    } else if (i >= 10) {
    } else {
      res += 1
    }
  }
  console.log(res)
}

main(require('fs').readFileSync('/dev/stdin', 'utf8'))
//  [typescript]
const calc = (a) => {
  let sum = 0;
  if (a < 10) {
    return a;
  } else {
    sum += 9;
  }

  if (a < 100) return sum;

  if (a < 1000) {
    sum += a - 100 + 1;
    return sum;
  } else {
    sum += 900;
  }

  if (a < 10000) return sum;

  if (a < 100000) {
    sum += a - 10000 + 1;
    return sum;
  } else {
    sum += 90000;
  }

  return sum;
}

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

Main(require("fs").readFileSync("/dev/stdin", "utf8"));
//  [typescript]
((input: string): void => {
    const hoge = [...Array(Number(input))].map((_, i) => i+1)
    const fuga = hoge.filter(v => String(v).split("").length % 2 != 0)
    console.log(fuga.length);
})(require('fs').readFileSync('/dev/stdin', 'utf8'));
//  [typescript]
import * as fs from 'fs';

//in
//
//out
//
const main = (inp: string) => {
    let n: number = parseInt(inp);
    let ans: number = 0;
    while (n < 0) {
        if (n.toString().length % 2 === 1) {
            ans++;
        }
        n--;
    }
    console.log(ans);
};

main(fs.readFileSync('/dev/stdin', 'utf8').trim());
//  [typescript]
import * as fs from 'fs';

//in
//
//out
//
const main = (inp: string) => {
    let n: number = parseInt(inp);
    let ans: number = 0;
    while (n < 0) {
        if (n.toString().length % 2 === 0) {
            ans++;
        }
        n--;
    }
    console.log(ans);
};

main(fs.readFileSync('/dev/stdin', 'utf8').trim());
//  [python]
import math

x = int(input())

money = 100
count = 0

while money < x:
    count = count + 1
    money = math.floor(money * 1.01)

print(count)
//  [python]
X = int(input())
t = 100
cnt = 0

while t < X:
  t = t*1.01//1
  cnt += 1

print(cnt)
//  [python]
X = int(input())
k = 100
ans = 0
while k < X:
    ans += 1
    k = int(k*1.01)
print(ans)
//  [python]
X = int(input())
i = 1
x = 100
while True:
    x += x / 100 
    x = int(x)
    if x >= X:
        print(i)
        exit()
    i += 1
//  [python]
x=int(input())
#x=105
cb=100


i=0
while cb <= x:
    cb=cb*1.01
    i+=1
print(i)
//  [python]
X = int(input())
money = 100
y = 0
while True:
  money = int(101 * money / 100)
#  print(money)
  y += 1
  if money >= X:
    print(y)
    break
//  [java]
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Queue;
import java.util.StringTokenizer;
import java.util.TreeSet;

import javax.swing.*;

import static java.util.Arrays.binarySearch;
import static java.util.Arrays.copyOfRange;
import static java.util.Arrays.sort;

public class Main {

    public static void main(String[] args) throws Exception {
        InputStream inputStream = System.in;
        OutputStream outputStream = System.out;

        InputReader in = new InputReader(inputStream);
        PrintWriter out = new PrintWriter(outputStream);

        Task solver = new Task();
        solver.solve(1, in, out);
        out.close();
    }
}

class Task {

    private static int mod = 998244353;

    public void solve(int testNumber, InputReader in, PrintWriter out) {
        long x = in.nextLong();
        // n * log 1.01 >= log x / 100
        out.println(cal(x));
    }

    private int cal(long x) {
        long a = 100;
        for (int i = 1;; i++) {
            a = (long) (a * 1.01);
            if (a >= x) {
                return i;
            }
        }
    }

}

class InputReader {

    private final BufferedReader reader;
    private StringTokenizer tokenizer;

    public InputReader(InputStream stream) {
        reader = new BufferedReader(new InputStreamReader(stream));
        tokenizer = null;
    }

    public String nextLine() {
        try {
            return reader.readLine();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

    public String next() {
        while (tokenizer == null || !tokenizer.hasMoreTokens()) {
            tokenizer = new StringTokenizer(nextLine());
        }
        return tokenizer.nextToken();
    }

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

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

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

}
//  [java]
import java.awt.*;
import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws Exception {
        FastReader sc = new FastReader();
        long x=sc.nextLong();
        long curr=100;
        int c=0;
        while (curr<x){
            curr+=(curr/100);
            c++;
        }
        System.out.println(c);
    }
    static class FastReader {
        BufferedReader br;
        StringTokenizer st;

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

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

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

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

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

        String nextLine() {
            String str = "";
            try {
                str = br.readLine();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return str;
        }
    }
}
//  [java]
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {

    public static void main(String[] args) {
        FastReader fs = new FastReader();
        long x =fs.nextLong();
        long years =0L;
        long principal = 100;
        while(principal <x){

            long interest = principal/100;
            principal += interest;
            years++;
        }
        System.out.println(years);


    }

    static class FastReader
    {
        BufferedReader br;
        StringTokenizer st;

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

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

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

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

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

        String nextLine()
        {
            String str = "";
            try
            {
                str = br.readLine();
            }
            catch (IOException e)
            {
                e.printStackTrace();
            }
            return str;
        }
    }
}
//  [java]
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc = new Scanner(System.in);
		long x = sc.nextLong();
		
		long temp = 100;
		int count = 0;
		while(true) {
			
			if(temp >= x || temp < 0) break;
			
			temp *= 1.01;
			count++;
		}
		
		System.out.println(count);
		
	}

}
//  [java]
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc = new Scanner(System.in);
		long x = sc.nextLong();
		
		long temp = 100;
		int count = 0;
		while(true) {
			
			if(temp >= x) break;
			
			temp *= 1.01;
			count++;
		}
		
		System.out.println(count);
		
	}

}
//  [java]
import java.util.*;

public class Main{
    void solve(){
        Scanner scan = new Scanner(System.in);
        long x = scan.nextLong();
        long b = 100;
        int out = 0;
        while(b < x){
            b += b * 0.01;
            out++;
        }
        System.out.println(out);
    }

    public static void main(String[] args){
        new Main().solve();
    }
}
//  [cpp]
#include <stdio.h>
typedef long long ll;

int main(void) {
  ll x, i, now = 100;
  scanf("%lld", &x);
  for(i = 0; x > now; ++i) now *= 1.01;
  printf("%lld", i);
  return 0;
}
//  [cpp]
#include<cstdio>
#include<algorithm>
#include<functional>
using namespace std;
int main(void)
{
	long long k,x;
	int n;
	scanf("%lld",&x);
	k=100;
	n=0;
	while(1)	{
		if(k>=x)	break;
		k=k*1.01;
		n++;
	}
	printf("%d\n",n);
	return 0;
}
//  [cpp]
#include<stdio.h>
long long n, m, i, j, k;
int main(){
	scanf("%lld", &m);
	n = 100;
	while(n < m){
		n = n + n / 100;
		k++;
	}
	printf("%lld", k);
	return 0;
}
//  [cpp]
#include <bits/stdc++.h>
using namespace std;

int main() {
  long X, ans = 0, n = 100;
  cin >> X;
  
  while (X > n){
    n *= 1.01;
    ans += 1;
  } 
  
  cout << ans << endl;
}
//  [cpp]
#include<bits/stdc++.h>
#define MOD 1000000007
#define mp make_pair
#define ll long long
#define pb push_back
#define faster ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define debug cout<<"Debugging.."<<endl
using namespace std;
int main()
{
	faster;

	ll int x;
	cin>>x;
	ll int p=0,c=0;
	while(p<x)
	{
		p+=p/100;
		c++;
	}
	cout<<c;
}
//  [cpp]
#include<bits/stdc++.h>
#define MOD 1000000007
#define mp make_pair
#define ll long long
#define pb push_back
#define faster ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define debug cout<<"Debugging.."<<endl
using namespace std;
int main()
{
	faster;

	int x;
	cin>>x;
	int p=0,c=0;
	while(p<x)
	{
		p+=p/100;
		c++;
	}
	cout<<c;
}
//  [c]
#include <stdio.h>
typedef long long ll;
int main() {
	ll x, m = 100;
	int y = 0;
	scanf("%lld", &x);
	while (1) {
		m = m * 1.01;
		y++;
		if (m >= x) {
			break;
		}
	}
	printf("%d\n", y);
	return 0;
}
//  [c]
#include<stdio.h>
int main(){
long long int a,i=1,b=100;
scanf("%lld", &a);
  
  while(1){
    b=b*1.01;
    if(b>=a){
      printf("%lld\n", i);
      return 0;
    }
      i++;
  }

}
//  [c]
#include <stdio.h>

int main(void){
    long long int x;
    scanf("%lld",&x);
    long long int i=100;
    long long int count=0;
    while(x>i){
        i+=i/100;
        count++;
    }
    printf("%lld\n",count);
    return 0;
}
//  [c]
#include<stdio.h>

int main(void){
  long long n,x=100;
  scanf("%lld",&n);
  int i=0;
  while(x<n){
    x*=101/100;
    i++;
  }
  printf("%d",i);
  return 0;
}
//  [c]
#include<stdio.h>

int main(void){
  long long n,x=100;
  scanf("%lld",&n);
  int i;
  for(i=1;x<n;i++){
    x*=101/100;
  }
  printf("%d",i-1);
  return 0;
}
//  [c]
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#include<time.h>
#define FOR(i,n) for(int i=0;i<n;i++)
#define PRN(n) printf("%d\n",n)
#define PRF(n) printf("%lf\n",n)
#define PRL(n) printf("%lld\n",n)
#define PRS(s) printf("%s\n",s)
#define PRC(c) printf("%c",c)
#define INI(n) scanf("%d",&n)
#define INL(n) scanf("%lld",&n)
#define INF 10000000000
#define mod 1000000007
#define X 100000
#define N 20
#define M 46
typedef long long int ll;
ll finv[X];
ll fac[X];
ll inv[X];
ll usort(const void *a, const void *b){return *(ll*)a-*(ll*)b;}
ll dsort(const void *a, const void *b){return *(ll*)b-*(ll*)a;}
ll ssort(const void *a, const void *b){return strcmp((char*)a,(char*)b);}
void Iswap(int *a,int *b){
  int t=*a;
  *a=*b;
  *b=t;
}
void Fswap(double *a,double *b){
  double t=*a;
  *a=*b;
  *b=t;
}
void Lswap(ll *a,ll *b){
  ll t=*a;
  *a=*b;
  *b=t;
}
ll min(ll a,ll b){
  if(a>b)return b;
  return a;
}
ll max(ll a,ll b){
  if(a>b)return a;
  return b;
}
ll z(ll a){return max(a,-a);}
ll gcd(ll a,ll b){if(!b){return a;}else{return gcd(b,a%b);}}
ll lcm(ll a,ll b){return a*b/gcd(a,b);}
ll kt(ll a){
  ll sum=0;
  while(a){
    a/=10;
    sum++;
  }
  return sum;
}
ll ks(ll a){
  ll sum=0;
  while(a){
    sum+=a%10;
    a/=10;
  }
  return sum;
}
void nCrReady(){
  fac[0]=fac[1]=1;
  finv[0]=finv[1]=1;
  inv[1]=1;
  for (ll i=2;i<X;i++){
    fac[i]=fac[i-1]*i%mod;
    inv[i]=mod-inv[mod%i]*(mod/i)%mod;
    finv[i]=finv[i-1]*inv[i]%mod;
  }
}
ll nCr(ll n,ll k){return fac[n]*(finv[k]*finv[n-k]%mod)%mod;}
ll modpow(ll a,ll n){
  ll res=1;
  while(n>0){
    if(n&1)res=res*a%mod;
    a=a*a%mod;
    n>>=1;
  }
  return res;
}
int main(void){
  ll a;
  INL(a);
  int ans=0;
  double i=100;
  while(1){
    ans++;
    i*=1.01;
    if(i>a)break;
  }
  PRN(ans);
  return 0;
}
//  [javascript]
function main(input) {
    const parsedInput = parser(input);
    console.log(amountYearCalc(parsedInput.x));
}

function parser(inputStr) {
    const splitInput = inputStr;
    return {
        x: Number(splitInput),
    };
}

function amountYearCalc(x) {
    var i = 100;
    var count = 0;
    while (x > i) {
        i = Math.floor(i * 1.01);
        count ++;
    }
    return count;
}
// test
// const Q1 = `103`;
// const Q2 = `1000000000000000000`;
// const Q3 = `1333333333`;
// 
// main(Q1);
// main(Q2);
// main(Q3);
main(require('fs').readFileSync('/dev/stdin', 'utf8'));
//  [javascript]
function Main(input) {
    // 1行目がinput[0], 2行目がinput[1], …に入る
    var X = input.trim();
    var money = 100;
    var risi = 0;
    var count = 0;
    for (let i = 0; i < X; i++) {
        money = Math.floor(money * 1.01);
        if (money >= X) {
            console.log(i+1);
            i = X;
        }
    }
}
Main(require("fs").readFileSync("/dev/stdin", "utf8"));
//  [javascript]

function Main(_input) {
    var num_X = parseInt(_input);
    var num_org = 100;
    var num_Y = num_org;
    var year = 0;
    while(true){
        year++;
        num_Y = Math.floor(num_Y * 1.01);
        if(num_Y >= num_X) break;
    }
    console.log(year);
}
//*この行以降は編集しないでください（標準入出力から一度に読み込み、Mainを呼び出します）
Main(require("fs").readFileSync("/dev/stdin", "utf8"));
//  [javascript]
function Main(input){
    input=input.split("\n");  //ここまで必須
    var sum=100;
    var year=0;
    while (sum<input[0]){
        sum=Math.floor(sum*1.01);
        year=year+1;
    }
    console.log(year);
}

Main(require("fs").readFileSync("/dev/stdin","utf8"));
//  [javascript]
function Main(input) {
    input = input.trim();
    const x = parseInt(input,10);

    let money = 100;
    for (let i = 1; i <= 3760; i++) {
        money = Math.floor(money*101/100);
        if(money >= x){
            console.log(i);
            break;
        }
    }
    
}
 
//*この行以降は編集しないでください（標準入出力から一度に読み込み、Mainを呼び出します）
Main(require("fs").readFileSync("/dev/stdin", "utf8"));
//  [javascript]
function Main(input) {
    input = input.trim();
    const x = parseInt(input,10);

    let money = 100;
    for (let i = 1; i <= 3760; i++) {
        money = money + Math.floor(money/100);
        if(money >= x){
            console.log(i);
            break;
        }
    }
    
}
 
//*この行以降は編集しないでください（標準入出力から一度に読み込み、Mainを呼び出します）
Main(require("fs").readFileSync("/dev/stdin", "utf8"));
//  [go]
package main

import (
	"fmt"
	"math"
)

func main() {
	var N float64
	fmt.Scanf("%f", &N)
	i := 100.0
	cnt := 0
	for ; i < N; cnt++ {
		i = math.Floor(i * 1.01)
	}
	fmt.Println(cnt)
}
//  [go]
package main

import (
	"fmt"
)

func main() {
	fmt.Println()
	var x int
	fmt.Scan(&x)
	fmt.Println(profit(x))
}

func profit(x int) int {
	count := 0
	for i:=100;i < x;{
	i += i/100
	count ++
	}
	return count
}
//  [go]
package main

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

func main() {
	sc := NewScanner()
	X := sc.NextInt()
	i := 0
	A := 100
	for ; A < X; i++ {
		T := A / 100
		A = A + T
	}
	fmt.Println(i)

}

type Scanner struct {
	r   *bufio.Reader
	buf []byte
	p   int
}

func NewScanner() *Scanner {
	rdr := bufio.NewReaderSize(os.Stdin, 1000)
	return &Scanner{r: rdr}
}
func (s *Scanner) Next() string {
	s.pre()
	start := s.p
	for ; s.p < len(s.buf); s.p++ {
		if s.buf[s.p] == ' ' {
			break
		}
	}
	result := string(s.buf[start:s.p])
	s.p++
	return result
}
func (s *Scanner) NextLine() string {
	s.pre()
	start := s.p
	s.p = len(s.buf)
	return string(s.buf[start:])
}
func (s *Scanner) NextInt() int {
	v, _ := strconv.Atoi(s.Next())
	return v
}
func (s *Scanner) NextInt64() int64 {
	v, _ := strconv.ParseInt(s.Next(), 10, 64)
	return v
}

func (s *Scanner) NextFloat() float64 {
	v, _ := strconv.ParseFloat(s.Next(), 64)
	return v
}

func (s *Scanner) NextIntArray() []int {
	s.pre()
	start := s.p
	result := []int{}
	for ; s.p < len(s.buf)+1; s.p++ {
		if s.p == len(s.buf) || s.buf[s.p] == ' ' {
			v, _ := strconv.ParseInt(string(s.buf[start:s.p]), 10, 0)
			result = append(result, int(v))
			start = s.p + 1
		}
	}

	return result
}
func (s *Scanner) NextInt64Array() []int64 {
	s.pre()
	start := s.p
	result := []int64{}
	for ; s.p < len(s.buf)+1; s.p++ {
		if s.p == len(s.buf) || s.buf[s.p] == ' ' {
			v, _ := strconv.ParseInt(string(s.buf[start:s.p]), 10, 64)
			result = append(result, v)
			start = s.p + 1
		}
	}
	return result
}

func (s *Scanner) NextMap() map[int]bool {
	s.pre()
	start := s.p
	mp := map[int]bool{}
	for ; s.p < len(s.buf); s.p++ {
		if s.buf[s.p] == ' ' {
			v, _ := strconv.Atoi(string(s.buf[start:s.p]))
			mp[v] = true
			start = s.p + 1
		}
	}
	v, _ := strconv.Atoi(string(s.buf[start:s.p]))
	mp[v] = true

	return mp
}

func (s *Scanner) pre() {
	if s.p >= len(s.buf) {
		s.readLine()
		s.p = 0
	}
}
func (s *Scanner) readLine() {
	s.buf = make([]byte, 0)
	for {
		l, p, e := s.r.ReadLine()
		if e != nil {
			panic(e)
		}
		s.buf = append(s.buf, l...)
		if !p {
			break
		}
	}
}
//  [go]
package main

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

var sc = bufio.NewScanner(os.Stdin)

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

func nextFloat64() float64 {
	sc.Scan()
	i, e := strconv.ParseFloat(sc.Text(), 64)
	if e != nil {
		panic(e)
	}
	return i
}

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

func main() {
	sc.Split(bufio.ScanWords)
	//sc.Buffer(nil, 100000000)

	x := nextInt()

	credit := 100
	ans := 0
	for i := 0; credit <= x; i++ {
		if i > 0 {
			credit = int(float64(credit) * 1.01)
			ans += 1
		}
	}
	fmt.Println(ans)
}
//  [go]
package main

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

var sc = bufio.NewScanner(os.Stdin)

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

func nextFloat64() float64 {
	sc.Scan()
	i, e := strconv.ParseFloat(sc.Text(), 64)
	if e != nil {
		panic(e)
	}
	return i
}

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

func main() {
	sc.Split(bufio.ScanWords)
	//sc.Buffer(nil, 100000000)

	x := nextInt()

	credit := 100
	ans := 0
	for i := 0; credit < x; i++ {
		if i > 0 {
			credit = int(float64(credit) * 1.01)
			ans += 1
		}
	}
	fmt.Println(ans)
}
//  [ruby]
x = gets.to_i
now = 100
ans = 0

while now < x
  now = (now * 1.01).floor
  ans += 1
end

puts ans
//  [ruby]
n = gets.to_i
sum = 100
count = 0
while sum < n
  sum += (sum * 0.01).floor
  count += 1
end
puts count
//  [ruby]
X = gets.to_i
count = 0
money = 100

while money < X do
  money = (money * 1.01).floor
  count += 1
end

puts count
//  [ruby]
x = gets.to_i
a = 100
ans = 0
while true
  a += (a*0.01).to_i
  ans += 1
  if a >= x
    break
  end
end
puts ans
//  [ruby]
x=gets.to_i
i=100
y=0
loop do
  y+=1
  i=(i*1.01).floor
  break if i>=x
end
p y
//  [ruby]
a=gets.chomp
m=100
c=0
while a>m
 m+=m/100
 c+=1
end
p c
//  [rust]


fn main(){
	let mut buf = String::new();
	std::io::stdin().read_line(&mut buf).expect("can't read X");
	
	let x:u128 = match buf.trim().parse(){
		Ok(num) => num,
		Err(_) => panic!("error"),
	};
	
	let mut a = 100;
	let mut i = 0;
	while a < x {
		a = a + (a/100);
		i = i + 1;
	}
	println!("{}", i);
}