#include<bits/stdc++.h>
using namespace std;
struct bigint{
static const int N=1e3+10;
int x[N]={0};
bool op;
int len =0;
bigint()
{
memset(x,0,sizeof x);
op=0;
len=1;
}
bigint(string s)
{
memset(x,0,sizeof x);
reverse(s.begin(),s.end());
op=0;
if(s.back()=='-')
{
op=1;
s.pop_back();
}
if(s.back()=='+')
{
op=0;
s.pop_back();
}
len=s.size();
for(int i=0;i<len;i++)
{
x[i]=s[i]-'0';
}
}
friend ostream& operator <<(ostream &os,bigint a)
{
if(a.op==1)os <<"-";
for(int i=a.len-1;~i;i--)
{
os<<a.x[i];
}
return os;
}
friend bigint operator +(bigint a,bigint b)
{
bigint ans;
ans.len=max(a.len,b.len)+1;
if(a.op==1)
{
for(int i=0;i<=a.len;i++)
{
a.x[i]*=-1;
}
}
if(b.op==1)
{
for(int i=0;i<=b.len;i++)
{
b.x[i]*=-1;
}
}
for(int i=0;i<ans.len;i++)
{
ans.x[i]+=a.x[i]+b.x[i];
if(ans.x[i]>=10)
{
ans.x[i]-=10;
ans.x[i+1]++;
}
}
for(int i=0;i<ans.len;i++)
{
if(ans.x[i]<0)
{
while(ans.x[i]<0)
{
ans.x[i]+=10;
ans.x[i+1]-=1;
}
}
}
for(int i=ans.len;i>0;i--)
{
if(ans.x[i-1]==0)
{
ans.len--;
}else break;
}
if(ans.x[ans.len]<0)
{
ans.op=1;
ans.len++;
for(int i=0;i<=ans.len;i++)
{
ans.x[i]*=-1;
}
}
for(int i=0;i<ans.len;i++)
{
if(ans.x[i]<0)
{
while(ans.x[i]<0)
{
ans.x[i]+=10;
ans.x[i+1]-=1;
}
}
}
for(int i=ans.len;i>0;i--)
{
if(ans.x[i-1]==0)
{
ans.len--;
}else break;
}
if(ans.len == 0)
{
ans.len ++;
return ans;
}
return ans;
}
friend bigint operator -(bigint a,bigint b)
{
bigint ans;
b.op^=1;
return a+b;
}
friend bigint operator *(bigint a,bigint b)
{
bigint ans;
ans.len=a.len+b.len;
if(a.op == b.op and a.op==1)
{
ans.op=1;
ans.len++;
}
else
{
ans.op=0;
}
for(int i=0;i<=b.len;i++)
{
for(int j=0;j<=a.len;j++)
{
ans.x[j]+=(a.x[j]*b.x[i]);
}
}
for(int i=0;i<=ans.len;i++)
{
if(ans.x[i]>10)
{
ans.x[i+1]+=(ans.x[i]/10);
ans.x[i]%=10;
}
}
for(int i=ans.len;i>0;i--)
{
if(ans.x[i-1]==0)
{
ans.len--;
}else break;
}
if(ans.len == 0)
{
ans.len ++;
return ans;
}
return ans;
}
friend bigint operator !(bigint n)
{
bigint one;
one.x[0]=1;
one.len=1;
if(n.len==1 && n.x[0]==0)
{
return one;
}
bigint next=(n-one);
return n*next;
}
};
int main()
{
string num;
cin>>num;
bigint x(num);
cout<<!x;
return 0;
}