// 問題描述
// 一個正整數如果任何一個數位不大於右邊相鄰的數位,則稱爲一個數位遞增的數,例如 1135
// 是一個數位遞增的數,而 1024不是一個數位遞增的數。
// 給定正整數 n ,請問在整數 1 至 n中有多少個數位遞增的數?
// 輸入格式
// 輸入的第一行包含一個整數 n
// 輸出格式
// 輸出一行包含一個整數,表示答案。
// 評測用例規模與約定
// 對於 40%
// 的評測用例,1<=n<=1000。
// 對於 80% 的評測用例,1<=n<=100000。
// 對於所有評測用例,1<=n<=1000000。
//暴力:循環(1,n) 每一個數,然後判斷每位是否遞增
//靈活一點:構造從1-n的數位遞增的數(遞歸
#include<bits/stdc++.h>
using namespace std;
int n;
int sum = 0;
void dfs(int num)
{
for(int i = num%10 ? num%10 : 1; i <= 9; i++){
if(num*10+i <= n){
sum++;
dfs(num*10+i);
}
}
}
int main()
{
cin>>n;
dfs(0); //從零開始構造數位遞增
cout<<sum<<endl;
return 0;
}