#include    <iostream>

using namespace std;
const int MAX = 2008080808;
const int IT = 7;

template<int n, int curr, int last, int base, int weight>
class A
{
    enum{it = n/base%10};
public:
    enum{result = A<n, (it-(it>IT))* weight+((it<IT)?curr:(it==IT?last:base+curr)), last+base*it, base*10, (weight?weight*9+base:1)> :: result};
};

template<int n, int curr, int base, int weight>
class A<n, curr, n, base, weight>
{
public:
    enum {result = curr};
};

int main(int argc, char* argv[])
{
    cout << A<MAX+1, 0, 0, 1, 0>:: result << endl;
    return 0;
}