const zeroPadding = (num, length) => {
  return ('0000000000' + num).slice(-length);
};

const Main = (input) => {
  // 入力値の整形
  /*
  753数を出力する。
  */
  const fateArray = [7, 5, 3];
  const genaratedArray = Array(Math.pow(input.length, 3))
    .fill(0)
    .map((a, b) => {
      return b.toString(3);
    })
    .map((value) => {
      // inputが3桁の場合は
      // 000~333?
      return zeroPadding(value, 3);
    })
    .filter((value) => {
      return (
        value.split('').filter((x, i, self) => {
          return self.indexOf(x) !== self.lastIndexOf(x);
        }).length === 0
      );
    })
    .map((value) => {
      return (
        String(fateArray[value[0]]) +
        String(fateArray[value[1]]) +
        String(fateArray[value[2]])
      );
    })
    .filter((value) => {
      return value <= input;
    });

  console.log(genaratedArray.length);
};

//* この行以降は編集しないでください（標準入出力から一度に読み込み、Mainを呼び出します）
Main(require('fs').readFileSync('/dev/stdin', 'utf8'));
