#!/usr/bin/python
#sha0@badhcecksum.net

import sys

class Combinatoria:
	#Permutaciones
	def P(self,n):
		res=1
		for i in range(1,n+1):
			res *= i
		return res		

	#Combinaciones (no importa el orden)	
	def C(self,n,r):
		return self.P(n) / ( self.P(r) * self.P(n-r) )

	#Combinaciones con repeticion (no importa el orden)
	def CR(self,n,r):
		return self.C(n+r-1,r-1)

	#Variaciones (importa el orden)	
	def V(self,n,r):
		return self.P(n) / self.P(n-r)
	
	#Variaciones con repeticion (importa el orden)	
	def VR(self,n,r):
		return pow(n,r)

	#Interfaz
	def calc(self,mode,n,r):
		if mode == 'P':
			print 'P(n)=P('+str(n)+')='+str(n)+'!='+str(c.P(n))
		if mode == 'C':
			print 'C(n,r)=C('+str(n)+','+str(r)+')='+str(c.C(n,r))
		if mode == 'CR':
			print 'CR(n,r)=CR('+str(n)+','+str(r)+')='+str(c.CR(n,r))
		if mode == 'V':
			print 'V(n,r)=V('+str(n)+','+str(r)+')='+str(c.V(n,r))
		if mode == 'VR':
			print 'VR(n,r)=VR('+str(n)+','+str(r)+')='+str(c.VR(n,r))


if len(sys.argv) != 4:
	print 'uso: '+sys.argv[0]+' <mode: P C CR V VR> <n>  <r>'
	sys.exit(-1)

mode=sys.argv[1]
n=int(sys.argv[2])
r=int(sys.argv[3])

c=Combinatoria()
c.calc(mode,n,r)


