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

int a=0, i;
long long ans=0, n, s=1;
int main(){
cin>>n;
while(true){
  s*=10;
  a++;
  if(n>=s)
    ans+=(s-s/10)*((a-1)/3);
  else{
    ans+=(n-s/10+1)*((a-1)/3);
    break;
  }
}
cout<<ans<<endl;
}
// どこが間違っているか分からない時は,簡単なミス(型,スペル,入力or出力など)をしていたり問題文の見落としがあったりする. 一度落ち着いて頭をリセットしよう.
// 計算途中のオーバーフローに注意しよう

#include "bits/stdc++.h"

#define REP(i, n, N) for(ll i=(n); i<(N); i++)
#define RREP(i, n, N) for(ll i=(N-1); i>=(n); i--)
#define LREP(lst,itr) for(auto itr = lst.begin(); itr != lst.end(); ++itr)
#define CK(n, a, b) ((a)<=(n)&&(n)<(b))
#define ALL(v) (v).begin(),(v).end()
#define MCP(a, b) memcpy(b,a,sizeof(b))
#define P(s) cout<<(s)<<endl
#define P2(a, b) cout<<(a)<<" "<<(b)<<endl
#define P3(a, b, c) cout<<(a)<<" "<<(b)<<" "<<(c)<<endl
#define PP(val, pre) cout<<fixed<<setprecision(pre)<<val<<endl
#define V2(T) vector<vector<T>>
typedef long long ll;
using namespace std;
const ll MOD = 1e9 + 7;
const ll INF = 1e18;

int main(){
    ll N, ans=0;
    ll first = 999;
    ll second = 999999;
    ll third = 999999999;
    ll fourth = 999999999999;
    ll fifth = 999999999999999;
    cin >> N;
    if(N>first){
        ans += N-first;
    }
    if(N>second){
        ans += N-second;
    }
    if(N>third){
        ans += N-third;
    }
    if(N>fourth){
        ans += N-fourth;
    }
    if(N>fifth){
        ans += N-fifth;
    }
    P(ans);
}