The city park of IT City contains n east to west paths and n north to south paths. Each east to west path crosses each north to south path, so there are n^2 intersections.

The city funded purchase of five benches. To make it seems that there are many benches it was decided to place them on as many paths as possible. Obviously this requirement is satisfied by the following scheme: each bench is placed on a cross of paths and each path contains not more than one bench.

Help the park administration count the number of ways to place the benches.


-----Input-----

The only line of the input contains one integer n (5 ≤ n ≤ 100) — the number of east to west paths and north to south paths.


-----Output-----

Output one integer — the number of ways to place the benches.


-----Examples-----
Input
5

Output
120

Difficulty: interview

Starter code:

Solutions:
n = int(input())

print((n*(n-1)*(n-2)*(n-3)*(n-4))**2//120)

import sys
def fact(n):
	ret = 1
	for x in range(1, n + 1):
		ret = ret * x
	return ret

def C(n, k):
	return fact(n) // (fact(k) * (fact(n - k)))
n = int(input())
print(C(n, 5) * C(n, 5) * 120)

from functools import reduce
from math import factorial
n = int(input())
C_n_k = lambda n, k: reduce(lambda x, y: x*y, list(range(n, n-k, -1))) // factorial(k)
print((C_n_k(n, 5) ** 2) * 120)


n = int(input())
print ( (n * (n - 1) * (n - 2) * (n - 3) * (n - 4) // 120) ** 2 * 120)

def fact(i):
  ans = 1
  for j in range(1, i + 1):
    ans *= j
  return ans

def c(i, j):
  return fact(i) // (fact(j) * fact(i - j))

n = int(input())
ans = 1
for j in range(5):
 ans *= n - j
print(ans * c(n, 5))

def C(n,m):
    a = 1
    b = 1
    for i in range(1,m+1):
        a *= n+1-i
        b *= i
    return a//b

def __starting_point():

    n = int(input())
    print(C(n,5)*n*(n-1)*(n-2)*(n-3)*(n-4))
__starting_point()

n = int(input())
def fact(n):
    return 1 if n == 0 else (n * fact(n - 1))

def c(n, k):
    return fact(n) // (fact(k) * (fact(n - k)))

print(c(n, 5) ** 2 * fact(5))


n=int(input())
ans=1
for i in range(5):
  ans=ans*(n-i)*(n-i)
ans=ans//(2*3*4*5)
print(ans)

def main():
    n = int(input())
    ans = n*(n-1)*(n-2)*(n-3)*(n-4) // (5*4*3*2*1)
    ans *= 120 * ans
    print(ans)

def __starting_point():
    main()
__starting_point()

def C(frm, what):
    ans = 1
    for i in range(what):
        ans *= frm - i
        ans = ans // (i + 1)
    return ans
 
n = int(input())
ans = C(n, 5) * C(n, 5) * 120
print (ans)

n = int(input())
res = n * (n - 1) * (n - 2) * (n - 3) * (n - 4) // 120
print(n * (n - 1) * (n - 2) * (n - 3) * (n - 4) * res)

from math import factorial as f

n = int(input())

def b(n, k):
	return f(n)//f(k)//f(n-k)
	
print(b(n, 5)**2*120)

n=int(input())
print(n**2*(n-1)**2*(n-2)**2*(n-3)**2*(n-4)**2//2//3//4//5)


import sys


def fact(k):
    return k ** 2 * (k - 1) ** 2 * (k - 2) ** 2 * (k - 3) ** 2 * (k - 4) ** 2



n = int(input())

print(fact(n) // 120)

n = int(input())
x = n * (n - 1) * (n - 2) * (n - 3) * (n - 4)
print(x * x // 120)

import re, sys, string, operator, functools, fractions, collections
sys.setrecursionlimit(10**7)
dX= [-1, 1, 0, 0,-1, 1,-1, 1]
dY= [ 0, 0,-1, 1, 1,-1,-1, 1]
RI=lambda x=' ': list(map(int,input().split(x)))
RS=lambda x=' ': input().rstrip().split(x)
mod=int(1e9+7)
eps=1e-6
#################################################
n=RI()[0]
ans=1
for i in range(5):
    ans*=((n-i)*(n-i))
print(ans//120)






import sys

n = int(sys.stdin.readline())

print(n * n * (n - 1) * (n - 1) * (n - 2) * (n - 2) * (n - 3) * (n - 3) * (n - 4) * (n - 4) // 120)

def pol(n,k):
    if n == 0:
        return 1
    ans = 1
    for i in range(k):
        ans *= (n-i)/(i+1)
    k = int(ans)
    if abs(k - ans) < 1/2:
        return k
    return k + 1
n = int(input())
pr = pol(n,5) * pol(n,5) * 120
print(pr)

n=int(input())

a=n*(n-1)*(n-2)*(n-3)*(n-4)//(2*3*4*5) 
print( a*a*2*3*4*5)


import math
n = int(input())
t = n * (n - 1) * (n - 2) * (n - 3) * (n - 4)
print(t * t // 120)


n = int(input())

ans = 1
for i in range (n, n - 5, -1):
	ans *= i * i
for i in range (1, 6):
	ans //= i
print(ans)


n = int(input())
res = 1
res *= n*n
res *= (n-1)*(n-1)
res *= (n-2)*(n-2)
res *= (n-3)*(n-3)
res *= (n-4)*(n-4)
res = res // 5 // 4 // 3 // 2 // 1
print(res)

n = int(input())
print(n**2 * (n-1)**2 * (n-2)**2 * (n-3)**2 * (n-4)**2 // 5 // 4 // 3 // 2)


n=int(input())
sol = n * (n-1) * (n-2) * (n-3) * (n-4)
sol = sol * sol
sol = sol // 120
print(sol)


n = int(input())
ans = (n * (n - 1) * (n - 2) * (n - 3) * (n - 4)) ** 2 // 120
print(ans)