description: Mr. Chanek has an integer represented by a string s. Zero or more digits have been erased and are denoted by the character _. There are also zero or more digits marked by the character X, meaning they're the same digit.
  
  Mr. Chanek wants to count the number of possible integer s, where s is divisible by 25. Of course, s must not contain any leading zero. He can replace the character _ with any digit. He can also replace the character X with any digit, but it must be the same for every character X.
  
  As a note, a leading zero is any 0 digit that comes before the first nonzero digit in a number string in positional notation. For example, 0025 has two leading zeroes. An exception is the integer zero, (0 has no leading zero, but 0000 has three leading zeroes).
  
  Input
  
  One line containing the string s (1 ≤ |s| ≤ 8). The string s consists of the characters 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, _, and X.
  
  Output
  
  Output an integer denoting the number of possible integer s.
  
  Examples
  
  Input
  
  
  25
  
  
  Output
  
  
  1
  
  
  Input
  
  
  _00
  
  
  Output
  
  
  9
  
  
  Input
  
  
  _XX
  
  
  Output
  
  
  9
  
  
  Input
  
  
  0
  
  
  Output
  
  
  1
  
  
  Input
  
  
  0_25
  
  
  Output
  
  
  0
  
  Note
  
  In the first example, the only possible s is 25.
  
  In the second and third example, s ∈ \{100, 200,300,400,500,600,700,800,900\}.
  
  In the fifth example, all possible s will have at least one leading zero.
solution: from __future__ import division, print_function
  import math
  import sys
  import os
  from io import BytesIO, IOBase
  #from collections import deque, Counter, OrderedDict, defaultdict
  #import heapq
  #ceil,floor,log,sqrt,factorial,pow,pi,gcd
  #import bisect
  from bisect import bisect_left,bisect_right
  
  BUFSIZE = 8192
  
  
  class FastIO(IOBase):
  	newlines = 0
  
  	def __init__(self, file):
  		self._fd = file.fileno()
  		self.buffer = BytesIO()
  		self.writable = "x" in file.mode or "r" not in file.mode
  		self.write = self.buffer.write if self.writable else None
  
  	def read(self):
  		while True:
  			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
  			if not b:
  				break
  			ptr = self.buffer.tell()
  			self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr)
  		self.newlines = 0
  		return self.buffer.read()
  
  	def readline(self):
  		while self.newlines == 0:
  			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
  			self.newlines = b.count(b"\n") + (not b)
  			ptr = self.buffer.tell()
  			self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr)
  		self.newlines -= 1
  		return self.buffer.readline()
  
  	def flush(self):
  		if self.writable:
  			os.write(self._fd, self.buffer.getvalue())
  			self.buffer.truncate(0), self.buffer.seek(0)
  
  
  class IOWrapper(IOBase):
  	def __init__(self, file):
  		self.buffer = FastIO(file)
  		self.flush = self.buffer.flush
  		self.writable = self.buffer.writable
  		self.write = lambda s: self.buffer.write(s.encode("ascii"))
  		self.read = lambda: self.buffer.read().decode("ascii")
  		self.readline = lambda: self.buffer.readline().decode("ascii")
  
  
  def print(*args, **kwargs):
  	"""Prints the values to a stream, or to sys.stdout by default."""
  	sep, file = kwargs.pop("sep", " "), kwargs.pop("file", sys.stdout)
  	at_start = True
  	for x in args:
  		if not at_start:
  			file.write(sep)
  		file.write(str(x))
  		at_start = False
  	file.write(kwargs.pop("end", "\n"))
  	if kwargs.pop("flush", False):
  		file.flush()
  
  
  if sys.version_info[0] < 3:
  	sys.stdin, sys.stdout = FastIO(sys.stdin), FastIO(sys.stdout)
  else:
  	sys.stdin, sys.stdout = IOWrapper(sys.stdin), IOWrapper(sys.stdout)
  
  input = lambda: sys.stdin.readline().rstrip("\r\n")
  
  def inp():
      return(int(input()))
  def inps():
      return input().strip()
  def inlt():
      return(list(map(int,input().split())))
  def insr():
      s = input().strip()
      return(list(s[:len(s)]))
  def invr():
      return(map(int,input().split()))
  v=[]
  s=input().strip()
  n=len(s)
  strt=10**(n-1)
  end=10**(n)-1
  if n==1:
      strt=0
      end=10
  if n==2:
      strt=25
      end=99
  while(strt<end):
      v.append(strt)
      strt+=25
  
  cnt=0
  
  for i in range(len(v)):
      target=str(v[i])
      flag=1
      X=-1
      for i in range(n):
          if s[i]==target[i]:
              continue
          elif s[i]=='_':
              continue
          elif s[i]=='X':
              if X==-1:
                  X=target[i]
              else:
                  if target[i]==X:
                      continue
                  else:
                      flag=0
                      break
          else:
              flag=0
              break
      if flag:
          cnt+=1
  print(cnt)