#include <cstdio>
#include <cstring>
using namespace std;
char a[26];
void myreverse(char b[])
{
for(int i=0;i<26;i++)
a[b[i]-'A']='a'+i;
}
void encode(char str[],int len)
{
int i,j=0,k;
int temp[26]={0};
char b[26];//大写
for(i=0;i<len;i++)
{
b[j++]=str[i];
temp[str[i]-65]=1;
}
for(i=25,k=0;i>=j;k++)
if(!temp[k])
{
b[i--]=('A'+k);
}
myreverse(b);
}
int main()
{
//freopen("in.txt","r",stdin);
// freopen("ou.txt","w",stdout);
char str[30],c;
gets(str);
encode(str,strlen(str));
while((c=getchar())!=EOF)
{
if(c>='a'&&c<='z')
printf("%c",a[c-97]);
else if(c>='A'&&c<='Z')
printf("%c",a[c-65]-32);
else
printf("%c",c);
}
return 0;
}
#include <iostream>
#include <cstdio>#include <cstring>
#include <cmath>
#include <cstdlib>
#include <string>
using namespace std;
int x,k;
char str[1002];
int mypow(int a,int b)
{
int ans=1;
while(b--)
{
ans*=a;
}
return ans;
}
int solve(int i)
{
//12X^33 X^33 12X X 1000
k=i;
int j=i;
while(str[k]&&(str[k]!='-')&&(str[k]!='+'))k++;
int temp=1;
if(j<k&&str[j]>='0'&&str[j]<='9')
{
temp=0;
while(j<k&&str[j]>='0'&&str[j]<='9')
{
temp=temp*10+(str[j]-'0');
j++;
}
}
if(j<k&&str[j]=='X')
{
j++;
if(j<k&&str[j]=='^')//
{
j++;
int c=0;
while(j<k&&str[j]>='0'&&str[j]<='9')
{
c=c*10+(str[j]-'0');
j++;
}
return temp*mypow(x,c);
}
else //12X or X
{
return temp*x;
}
}
else return temp;//1000
}
void deal()
{
int i=0,j=0;
int ans=0;
while(str[i])
{
switch(str[i])
{
case '-':
++i;
ans+=(-1*solve(i));
i=k;
break;
case '+':
++i;
ans+=solve(i);
i=k;
break;
default :
ans+=solve(i);
i=k;
break;
}
}
printf("%d\n",ans);
}
int main()
{
while(~scanf("%d",&x))
{
getchar();
scanf("%s",str);
deal();
}
return 0;
}