S = [0] X = [[0] * 200 for _ in range(30)] X[0][0] = 1 for i in range(1, 30): S.append(S[-1] + 5 ** i * 2) for j in range(200): X[i][j] = X[i-1][j-2] + X[i-1][j-1] + X[i-1][j] + X[i-1][j+1-200] + X[i-1][j+2-200] def calc(k, l, r, t): if l * r > 0 and min(abs(l), abs(r)) > S[k]: return 0 if l <= - S[k] and S[k] <= r: return X[k][t] return sum(calc(k-1, l - 5 ** (k-1) * i, r - 5 ** (k-1) * i, t - i) for i in range(-2, 3)) N = int(input()) print(calc(28, 1, N, 0))