#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

int N;

template<class Head>
int to_int_impl(int res, Head head){
    return res * 10 + head;
}

template<class Head, class... Tail>
int to_int_impl(int res, Head head, Tail... tail){
    return to_int_impl(res * 10 + head, tail...);
}

template<class... Tail>
int to_int(Tail... tail){
    return to_int_impl(0, tail...);
}

int solve(int x){
    string str = to_string(x);
    int b = str[0] - '0';
    int a = str[str.size() - 1] - '0';

    // a....b をさがす
    
    if(a == 0)
        return 0;

    int ans = 0;
    if(a == b){
        if(N < 10){
            // (x, x) がある
            ans += 1;
        }else if(N < 100){
            // 10 <= N < 100
            // (x, a) がある
            ans += 1;
            // (x, aa) がある
            if(to_int(a, a) <= N) {
                ans += 1;
            }
        }else if(N < 1000){
            // 100 <= N < 1000
            // (x, a) がある
            ans += 1;
            // (x, aa) がある
            ans += 1;
            // (x, a.a) がある
            if(to_int(a, a) <= N) {
                for(int i=0;i<=9;i++){
                    if(to_int(a, i, a) <= N){
                        ans += 1;
                    }
                }
            }
        }else if(N < 10000){
            // 1000 <= N < 10000
            // (x, a) がある
            ans += 1;
            // (x, aa) がある
            ans += 1;
            // (x, a.a) がある
            ans += 10;

            // (x, aija) がある
            if(to_int(a, a) <= N) {
                for(int i=0;i<=9;i++){
                    for(int j=0;j<=9;j++){
                        if(to_int(a, i, j, a) <= N){
                            ans += 1;
                        }
                    }
                }
            }

        }else if(N < 100000){
            // 10000 <= N < 100000
            // (x, a) がある
            ans += 1;
            // (x, aa) がある
            ans += 1;
            // (x, a.a) がある
            ans += 10;

            // (x, aija) がある
            ans += 100;

            // (x, aijka) がある
            if(to_int(a, a) <= N) {
                for(int i=0;i<=9;i++){
                    for(int j=0;j<=9;j++){
                        for(int k=0;k<=9;k++){
                            if(to_int(a, i, j, k, a) <= N){
                                ans += 1;
                            }
                        }
                    }
                }
            }
        }else if(N < 1000000){
            // 100000 <= N < 1000000
            // (x, a) がある
            ans += 1;
            // (x, aa) がある
            ans += 1;
            // (x, a.a) がある
            ans += 10;

            // (x, aija) がある
            ans += 100;

            // (x, aijka) がある
            ans += 1000;

            // (x, aijkla) がある
            if(to_int(a, a) <= N) {
                if(to_int(a, 9, 9, 9, 9, a) <= N){
                    ans += 10000;
                }else{
                    for(int i=0;i<=9;i++){
                        if(to_int(a, i, 9, 9, 9, a) <= N){
                            ans += 1000;
                        }else{
                            for(int j=0;j<=9;j++){
                                if(to_int(a, i, j, 9, 9, a) <= N){
                                    ans += 100;
                                }else{
                                    for(int k=0;k<=9;k++){
                                        for(int l=0;l<=9;l++){
                                            if(to_int(a, i, j, k, l, a) <= N){
                                                ans += 1;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }else{
        if(N < 10){
            // ありえない
        }else if(N < 100){
            // 10 <= N < 100
            // (x, ab) がある
            if(to_int(a, b) <= N){
                ans += 1;
            }
        }else if(N < 1000){
            // 100 <= N < 1000
            // (x, ab) がある
            ans += 1;
            // (x, a.b) がある
            for(int i=0;i<=9;i++){
                if(to_int(a, i, b) <= N){
                    ans += 1;
                }
            }
        }else if(N < 10000){
            // 1000 <= N < 10000
            // (x, ab) がある
            ans += 1;
            // (x, a.b) がある
            ans += 10;
            // (x, a..b) がある
            for(int i=0;i<=9;i++){
                for(int j=0;j<=9;j++){
                    if(to_int(a, i, j, b) <= N){
                        ans += 1;
                    }
                }
            }
        }else if(N < 100000){
            // 10000 <= N < 100000
            // (x, ab) がある
            ans += 1;
            // (x, a.b) がある
            ans += 10;
            // (x, a..b) がある
            ans += 100;
            // (x, aijkb) がある
            for(int i=0;i<=9;i++){
                for(int j=0;j<=9;j++){
                    for(int k=0;k<=9;k++){
                        if(to_int(a, i, j, k, b) <= N){
                            ans += 1;
                        }
                    }
                }
            }
        }else if(N < 1000000){
            // 100000 <= N < 1000000
            // (x, ab) がある
            ans += 1;
            // (x, a.b) がある
            ans += 10;
            // (x, a..b) がある
            ans += 100;
            // (x, aijkb) がある
            ans += 1000;

            // (x, aijklb) がある
            if(to_int(a, 9, 9, 9, 9, b) <= N){
                ans += 10000;
            }else{
                for(int i=0;i<=9;i++){
                    if(to_int(a, i, 9, 9, 9, b) <= N){
                        ans += 1000;
                    }else{
                        for(int j=0;j<=9;j++){
                            if(to_int(a, i, j, 9, 9, b) <= N){
                                ans += 100;
                            }else{
                                for(int k=0;k<=9;k++){
                                    if(to_int(a, i, j, k, 9, b) <= N){
                                        ans += 10;
                                    }else{
                                        for(int l=0;l<=9;l++){
                                            if(to_int(a, i, j, k, l, b) <= N){
                                                ans += 1;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }


    }

    // cout << x << ":" << ans << endl;

    return ans;
}

int main(){
    cin >> N;

    int ans = 0;
    for(int i=1;i<=N;i++){
        ans += solve(i);
    }

    cout << ans << endl;

    return 0;
}

// 
// 103 
//  => 3[0-9]1


Measured memory_bytes: 256