var GET = (function(){
  function f(s){return new g(s);}
  function g(s){this._s=s.trim().split("\n");this._y=0;}
  g.prototype.a = function(f){
    var s = this._s, y = this._y, r;
    if(typeof s[y] === "string")s[y]=s[y].split(" ").reverse();
    r = s[y].pop();
    if(!s[y].length)this._y++;
    return f?r:+r;
  }
  g.prototype.l = function(f){
    var s=this._s[this._y++].split(" ");return f?s:s.map(a=>+a);
  }
  g.prototype.m = function(n,f){
    var r=this._s.slice(this._y,this._y+=n).map(a=>a.split(" "));
    return f?r:r.map(a=>a.map(a=>+a));
  }
  g.prototype.r = function(n,f){
    var r = this._s.slice(this._y,this._y+=n);
    return f?r:r.map(a=>+a);
  }
  return f;
})();
var o=GET(require("fs").readFileSync("/dev/stdin","utf8"));

console.log(main());
function main(){
  var n = o.a();
  var t = [5,5,3], ans = 0;
  while(1){
    t = make(t);
    var f = check(t,n);
    if(f === 1)ans++;
    else if(f === -1)break;
  }
  return ans;
  function make(t){
    for(var i = 0; i < t.length; i++){
      if(t[i] === 3){t[i] = 5; break;}
      if(t[i] === 5){t[i] = 7; break;}
      t[i] = 3;
    }
    if(i === t.length)t[i] = 3;
    return t;
  }
  function check(t,n){
    if(+[...t].reverse().join("") > n)return -1;
    var a = 0;
    for(var i = 0; i < t.length; i++){
      if(t[i] === 3)a |= 4;
      else if(t[i] === 5)a |= 2;
      else if(t[i] === 7)a |= 1;
    }
    if(a === 7)return 1;
    return 0;
  }
}