#include <algorithm>
#include <array>
#include <iostream>

#define maxn static_cast<int>(1e9 + 10)
#define mod static_cast<int>(109)
#define mod1 998244353
#define all(_) _.begin(), _.end()
#define endl '\n'
#define range(var_name, stare, end, step) for (ll var_name = stare; var_name < end; var_name += step)
#define pre(var_name, stare, end) for (ll var_name = stare; var_name < end; var_name++)
#define erp(var_name, stare, end) for (ll var_name = stare; var_name > end; var_name--)
#define _if(x, pred)  |views::filter([&](auto &&x){return pred;})
#define _map(x, pred) |views::transform([&](auto && x){return pred;})
#define debug(x) cerr << "\nDebuging.." << (#x) << ':' << (x) << endl 
#define PS system("pause")
#define IOS ios_base::sync_with_stdio(false),cin.tie(0),cout.tie(0)
#define rd read
using ll = long long int;
using namespace std;
/*make_vector*/template <typename RET> auto make_vector(RET x) { return x; } template <typename T1, typename T2, typename... Args> auto make_vector(T1 m, T2 n, Args... arg) { using InnerType = decltype(make_vector(n, arg...)); return vector<InnerType>(m, make_vector(n, arg...)); }
/*read*/template <typename T> inline void read(T& hfv_read_n) { hfv_read_n = 0; T hfv_read_x = 1; char hfv_read_c = getchar(); while (hfv_read_c < '0' || hfv_read_c > '9') { if (hfv_read_c == '-')hfv_read_x = -1; hfv_read_c = getchar(); } while (hfv_read_c >= '0' && hfv_read_c <= '9') { hfv_read_n = (hfv_read_n << 3) + (hfv_read_n << 1) + (hfv_read_c & 15); hfv_read_c = getchar(); } hfv_read_n *= hfv_read_x; }
/*print*/template <typename T> void print(T hfv_print_n, char hfv_print_c = 0) { if (hfv_print_n < 0)	putchar('-'), hfv_print_n = -hfv_print_n; if (hfv_print_n < 10)	putchar(hfv_print_n + 48); else print(hfv_print_n / 10), putchar(hfv_print_n % 10 + 48); if (hfv_print_c) putchar(hfv_print_c); }

array<array<int, 2>, 8> dir{ 1,0,0,1,-1,0,0,-1,1,1,-1,-1,1,-1,-1,1 };
//-----------------------------
bool ifseven(int n) {//----------判断是否有7
	while (n) {
		if ((n % 10) == 7) return 1;
		n /= 10;
	}
	return 0;
}

void slove() {
	ll cnt = 0;
	int n;
	rd(n);
	for (int i = 7; i <= n; i += 7)//---------添加7的整数倍
		cnt++;
	for (int i = 1; i <= n; i++) {
		if (i % 7 == 0) continue;//----------去掉7的整数倍,放置重复
		if (ifseven(i)) { cnt++; debug(i); };
	}
	print(cnt);
}

/*-----------C-O-D-E----------*/
int main()
{
	//IOS;
	int T = 1;
	//read(T);
	//----------------

	//----------------
	while (T--) {
		slove();
	}
	return 0;
}
/*
				┏┓   ┏┓+ +
   ┏┛┻━━━┛┻┓ + +
   ┃       ┃  
   ┃   ━   ┃ ++ + + +
   ████━████ ┃+
   ┃       ┃ +
   ┃   ┻   ┃
   ┃       ┃ + +
   ┗━┓   ┏━┛
     ┃   ┃           
     ┃   ┃ + + + +
     ┃   ┃    Codes are far away from bugs with the animal protecting   
     ┃   ┃ +     神兽保佑,代码大概率无bug(不过神兽偶尔也会休息哦~)  
     ┃   ┃        Blessed by the mythical beast, may bugs stay far away
     ┃   ┃  +         
     ┃    ┗━━━┓ + +
     ┃        ┣┓
     ┃        ┏┛
     ┗┓┓┏━┳┓┏┛ + + + +
      ┃┫┫ ┃┫┫
      ┗┻┛ ┗┻┛+ + +++
*/