#include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long int ll; typedef pair P; //-------------- ///#define DEBUG //-------------- #ifdef DEBUG #define debugprint(x) cout<x+add.x; add.y=this->y+add.y; return add; } zahyo operator-(zahyo add){ add.x=this->x-add.x; add.y=this->y-add.y; return add; } zahyo operator*(int t){ zahyo temp; temp.x=this->x*t; temp.y=this->y*t; return temp; } zahyo operator%(int t){ zahyo temp(this->x%t,this->y%t); return temp; } zahyo operator/(int t){ zahyo temp(this->x/t,this->y/t); return temp; } bool operator==(const zahyo add) const{ if(add.x==this->x and add.y==this->y){return true;} else{return false;} } bool operator!=(const zahyo add) const{ if(add.x==this->x or add.y==this->y){return false;} else{return true;} } bool operator<(const zahyo add) const{ if(this->xx==add.x and this->y(const zahyo add) const{ if(this->x>add.x){return true;} else if(this->x==add.x and this->y>add.y){return true;} else{return false;} } void input(){ cin>>x>>y; } }; int main(){ int n=0; cin>>n; //1+2 int ans=0; int temp=0; for(int i=1;i<=9;i++){ for(int j=0;j<=9;j++){ temp=i*10+j; if(temp<=n and temp%3==0){ ans++; } } } for(int i0=0;i0<4;i0++){ for(int i1=0;i1<4;i1++){ for(int i2=0;i2<4;i2++){ for(int i3=0;i3<4;i3++){ for(int i4=0;i4<4;i4++){ for(int i5=0;i5<4;i5++){ for(int i6=0;i6<4;i6++){ for(int i7=0;i7<4;i7++){ for(int i8=0;i8<4;i8++){ temp=i0*pow(10,0) +i1*pow(10,1) +i2*pow(10,2) +i3*pow(10,3) +i4*pow(10,4) +i5*pow(10,5) +i6*pow(10,6) +i7*pow(10,7) +i8*pow(10,8); temp=temp*3; if(temp<=n and temp>100){ ans++; } } } } } } } } } } cout<