#include "iostream"
#include "climits"
#include "list"
#include "queue"
#include "stack"
#include "set"
#include "functional"
#include "algorithm"
#include "math.h"
#include "utility"
#include "string"
#include "map"
#include "unordered_map"
#include "iomanip"
#include "random"

using namespace std;
const long long int MOD = 1000000007;

long long int N;
string a;
string b;
int ans=0;
int box;
list <long long int>num;

int main() {
	cin >> N;
	N /= 1000000001;
	for (int i = 1; i < 10; i++)num.push_back(i);
	for (int i = 1; i < 10; i++)num.push_back(i * 11);
	for (int i = 1; i < 10; i++) {
		for (int j = 0; j < 10; j++) {
			num.push_back(i * 100 + j * 10 + i);
		}
	}
	for (int i = 1; i < 10; i++) {
		for (int j = 0; j < 10; j++) {
			num.push_back(i * 1000 + j * 110 + i);
		}
	}
	for (int i = 1; i < 10; i++) {
		for (int j = 0; j < 10; j++) {
			for (int k = 0; k < 10; k++) {
				num.push_back(i * 10001 + j * 1010 + k * 100);
			}
		}
	}
	for (int i = 1; i < 10; i++) {
		for (int j = 0; j < 10; j++) {
			for (int k = 0; k < 10; k++) {
				num.push_back(i * 100001 + j * 10010 + k * 1100);
			}
		}
	}
	for (int i = 1; i < 10; i++) {
		for (int j = 0; j < 10; j++) {
			for (int k = 0; k < 10; k++) {
				for (int l = 0; l < 10; l++) {
					num.push_back(i * 1000001 + j * 100010 + k * 10100 + l * 1000);
				}
			}
		}
	}
	for (int i = 1; i < 10; i++) {
		for (int j = 0; j < 10; j++) {
			for (int k = 0; k < 10; k++) {
				for (int l = 0; l < 10; l++) {
					num.push_back(i * 10000001 + j * 1000010 + k * 100100 + l * 11000);
				}
			}
		}
	}
	for (int i = 1; i < 10; i++) {
		for (int j = 0; j < 10; j++) {
			for (int k = 0; k < 10; k++) {
				for (int l = 0; l < 10; l++) {
					for (int m = 0; m < 10; m++) {
						num.push_back(i * 100000001 + j * 10000010 + k * 1000100 + l * 101000 + m * 10000);
					}
				}
			}
		}
	}
	for (int i = 1; i < 10; i++) {
		for (int j = 0; j < 10; j++) {
			for (int k = 0; k < 10; k++) {
				for (int l = 0; l < 10; l++) {
					for (int m = 0; m < 10; m++) {
						num.push_back(i * 1000000001 + j * 100000010 + k * 10000100 + l * 1001000 + m * 110000);
					}
				}
			}
		}
	}
	for (auto i : num) {
		if (i <= N)ans++;
		else break;
		//cout << i << endl;
	}
	cout << ans << endl;
	return 0;
}