#include<iostream>
#include <stack>
using namespace std;
int factorialByStack(int num)
{
stack<int> tmp;
for(; num != 0; --num)
{
tmp.push(num);
}
int result = 1;
while(!tmp.empty() )
{
result *= tmp.top();
tmp.pop();
}
return result;
}
int main()
{
int n = 3;
int result = 0;
result = factorialByStack(n);
cout<<result<<endl;
return 0;
}