#include<cstdio>
using namespace std;
int findvall(int n)
{
int f;
if(n==0) return 1;
else
{
f=findvall(n/2);
}
return (n*f);
}
int main()
{
int n;
scanf("%d",&n);
printf("%d\n" ,findvall(n));
return 0;
}
#include<cstdio>
#include<cstring>
using namespace std;
int main( ) {
char str[60];
int len,i,j,chr[26];
char mmin='z';
scanf("%s",str);
len = strlen(str);
for (i=len-1; i>=1; i--)
if(str[i-1]<str[i]) break;
if(i==0) {
printf("No result! \n");
return 0;
}
for(j=0; j<i-1; j++) putchar(str[j]);
memset(chr, 0, sizeof(chr));
for(j=i; j<len; j++) {
if(str[j]> str[i-1] && str[j] < mmin)
mmin = str[j];
chr[str[j]-'a']++;
}
chr[mmin-'a']--;
chr[str[i-1]-'a']++;
putchar(mmin);
for(i=0; i<26; i++)
for (j=0; j<chr[i]; j++)
putchar(i + 'a');
putchar('\n');
return 0;
}
#include <bits/stdc++.h>
#include <windows.h>
using namespace std;
int a,mp[101][101];
int t[100003] ;
int y[100003] ;
int cnt;
int len=2,dir=3,die=0;
const int dx[5] = {0,0,-1,0,1};
const int dy[5] = {0,-1,0,1,0};
int nx=0, ny=1;
int px=1, py=2;
int check(int x, int yy)
{
if(x<1||x>a||yy<1||yy>a)
return 1;
if(cnt+1-mp[x][yy] < len)
return 1;
return 0;
}
void work()
{
if(die) return;
px += nx;
py += ny;
die=check(px,py);
if(die) return;
mp[px][py]= ++cnt;
}
void show()
{
for(int i= 1; i<=a; ++i)
{
for(int j=1; j<=a; ++j)
{
if(mp[i][j] != 0&& mp[i][j]>= cnt-len+1)
putchar('o');
else
putchar('.');
}
puts("");
}
}
int main()
{
mp[1][1]= ++cnt;
mp[1][2]= ++cnt;
int n,m,op,xx;
char s[3];
scanf("%d",&a);
scanf("%d%d",&n, &m);
while(n--)
{
scanf("%d%d",&op,&xx);
if(op==1)
{
t[xx]=1;
scanf("%s",s);
if(s[0]=='L')
y[xx]= 1;
else if(s[0]=='U')
y[xx]= 2;
else if(s[0]=='R')
y[xx]= 3;
else
y[xx]= 4;
}
else
{
t[xx]= 2;
}
}
for(int tm=1; tm<=m; ++tm)
{
if(t[tm]==1)
{
if(y[tm]%2!= dir%2)
{
dir = y[tm];
nx = dx[y[tm]];
ny = dy[y[tm]];
}
}
else if(t[tm]==2)
{
++len;
}
work();
if(die)
{
break;
}
}
show();
return 0;
}
#include<bits/stdc++.h>
# define fi first
# define se second
using namespace std;
const int MAXN=1e3+10;
const int INF = 0x313f3f3f;
typedef pair<int,int> P;
char s[MAXN][MAXN];
int n,m;
int dir[2][4]= {{1,-1,0,0},{0,0,1,-1}};
int dis[2][MAXN][MAXN];
void bfs(int p,int a,int b){
memset(dis[p],INF,sizeof(dis[p]));
dis[p][a][b]=0;
queue<pair <P,int> > q;
q.push({{a,b},0});
while(!q.empty()) {
int x=q.front().fi.fi,
y=q.front().fi.se,
d=q.front().se;
q.pop();
for(int i=0; i<4; i++) {
int dx=x+dir[0][i],
dy=y+dir[1][i];
if (dx<1||dy<1||dx>n||dy>m||s[dx][dy]=='#')
continue;
if(___(1)___) {
___(2)___;
___(3)___;
}
}
}
}
int main(void)
{
while(scanf("%d%d",&n,&m)!=EOF) {
int ans=INF;
scanf("%d%d",&n,&m);
for (int i=1; i<=n; i++)
scanf("%s",s[i]+1);
for(int i=1; i<=n; i++)
for (int j=1; j<=m; j++)
if(s[i][j]=='S')
bfs(0,i,j);
else if(s[i][j]=='E')
___(4)___;
for(int i=1; i<=n; i++)
for (int j=1; j<=m; j++)
if(s[i][j]=='K')
ans=___(5)___;
if(ans==INF)
ans=-1;
printf("%d\n",ans);
}
return 0;
}
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int mx=1e6+10;
int n,a[mx];
ll k,sum,ans;
int main()
{
scanf(" %d%lld", &n, &k);
for (int i=1; i<=n; ++i)
{
scanf("%d" ,&a[i]);
}
int r=0;
for (int i=1; i<=n; ++i)
{
while (r<n)
{
if (___(1)___) ___(2)___;
else break;
}
___(3)___;
if (i<=r) ___(4)___;
else ___(5)___;
}
printf("%lld\n",ans);
}