Fafa owns a company that works on huge projects. There are n employees in Fafa's company. Whenever the company has a new project to start working on, Fafa has to divide the tasks of this project among all the employees.

Fafa finds doing this every time is very tiring for him. So, he decided to choose the best l employees in his company as team leaders. Whenever there is a new project, Fafa will divide the tasks among only the team leaders and each team leader will be responsible of some positive number of employees to give them the tasks. To make this process fair for the team leaders, each one of them should be responsible for the same number of employees. Moreover, every employee, who is not a team leader, has to be under the responsibility of exactly one team leader, and no team leader is responsible for another team leader.

Given the number of employees n, find in how many ways Fafa could choose the number of team leaders l in such a way that it is possible to divide employees between them evenly.


-----Input-----

The input consists of a single line containing a positive integer n (2 ≤ n ≤ 10^5) — the number of employees in Fafa's company.


-----Output-----

Print a single integer representing the answer to the problem.


-----Examples-----
Input
2

Output
1

Input
10

Output
3



-----Note-----

In the second sample Fafa has 3 ways:  choose only 1 employee as a team leader with 9 employees under his responsibility.  choose 2 employees as team leaders with 4 employees under the responsibility of each of them.  choose 5 employees as team leaders with 1 employee under the responsibility of each of them.

Difficulty: interview

Starter code:

Solutions:
n = int(input())

num = 0
for x in range(1, 110000):
  if n % x == 0:
    num = num + 1
print(num - 1)

n = int(input())
c = 0
for i in range(1, n):
    if (n - i) % i == 0:
        c += 1
print(c)


n = int(input())
res = 0
for l in range(1, n):
    if (n - l) % l == 0:
        res += 1
print(res)

n=int(input())
c=0
for i in range(1,n):
    if n%i==0:
        c+=1
print(c)

def ii():
    return int(input())
def mi():
    return map(int, input().split())
def li():
    return list(mi())

n = ii()
c = sum(n % i == 0 for i in range(1, n))
print(c)

import math

n = int(input())
ans = 0
for i in range(1, n):
    if not (n-i)%i:
        ans += 1

print(ans)


n = int(input())
c = 0
for i in range(1,n):
	if (n-i) % i == 0:
		c += 1
print(c)

n = int(input())
ans = 0
for i in range(1, n):
    if (n - i) % i == 0:
        ans += 1
print(ans)

n = int(input())
ans = 0
for i in range(1,n):
    if (n-i) % i==0:
        ans +=1
print(ans)

n = int(input())
count = 0
for i in range(1, n):
    if (n-i)%i==0:
        count+=1

print(count)

n = int(input())
ans = 0
for i in range(1, n):
    if (n - i) % i == 0:
        ans += 1
print(ans)


n = int(input())

res = 0
for i in range(1, n):
  if n%i == 0:
    res += 1

print(res)


n = int(input());
cnt = 0;
for q in range(1, n // 2 + 1):
    if n % q == 0:
        cnt = cnt + 1;
print(cnt);

n = int (input())
res = 0
for i in range(1, n):
    if n%i == 0 :
        res +=1
print(res)



from sys import stdin, stdout

n = int(stdin.readline())
ans = 0

for i in range(1, n):
    if not (n - i) % i:
        ans += 1

stdout.write(str(ans))

n = int(input())
suc = 0
for i in range(1,n//2+1):
    if (n-i)//i*i == n-i:
        suc+=1
print(suc)


t=int(input())
count=0
for i in range(1,t):
     if t%i==0:
          count+=1
print(count)


n = int(input())
ans=0
for i in range(1,n):
	if (n-i) % i == 0:
		ans += 1
print(ans)

n = int(input())
res = 0
for i in range(1, n):
    if n % i == 0:
        res += 1
print(res)

# cook your dish here
import sys
import bisect
import math
from itertools import permutations
m=1000000007
#a=list(map(int,input().strip().split(' ')))
#n,k,s= map(int, sys.stdin.readline().split(' '))

def find_lt(a, x):
    'Find rightmost value less than x'
    i = bisect.bisect_left(a, x)
    if i:
        return a[i-1]
    else: return -1
    
n=int(input())
ans=0
for i in range(1,n):
    if((n-i)%i==0):ans+=1
print(ans)
    


n = int(input())
cnt = 0
for i in range(1, n // 2 + 1):
    if (n - i) % i == 0 and (n - i) // i > 0:
        cnt += 1
print(cnt)

n = int(input())
ans = 0
for i in range(1, n):
    if (n - i) % i == 0:
        ans += 1
print(ans)

def read():
    return list(map(int,input().split()))
n=int(input())
ans=0
for i in range(1,n):
    if (n-i)%i==0:
        ans+=1
print(ans)


#This code sucks, you know it and I know it.  
#Move on and call me an idiot later.

n = int(input())
cnt = 0
for i in range(1, (n//2)+1):
    if (n-i) % i == 0:
        cnt += 1
print(cnt)

#import sys
#from io import StringIO
#sys.stdin = StringIO(open(__file__.replace('.py', '.in')).read())

n = int(input())

c = 0
for i in range(1, n):
    if (n - i) % i == 0:
        c += 1
print(c)