#include<iostream>
#include<string.h>
#include<string>
#include<cctype>
#include <algorithm>
using namespace std;
//1024
//1.记录W,L数目
//2.出口条件为(W>=n||L>=n)&&(abs(W-L)>=2)
//3.条件E结束
//4.函数count,输入n塞制,输出比分
// char s[100000];
// void count(int n)
// {
// int W = 0,L=0;
// int i =0;
// do
// {
// if(s[i]=='L')L++;
// else if(s[i] =='W')W++;
// i++;
// if((W>=n||L>=n)&&(abs(W-L)>=2))
// {
// cout<<W<<":"<<L<<endl;
// L=0,W=0;
// }
// }while(s[i]!='E');
// cout<<W<<":"<<L<<endl;
// }
// int main()
// {
// char ch;
// int i =0;
// //存储
// do
// {
// cin>>ch;
// s[i++] = ch;
// }
// while(ch!='E');
// count(11);
// cout<<endl;
// count(21);
// //
// }
//2670
//1.两个字符数组,第一个数组存储输入
//2.排查'*',第二个数组四周如果不是'*'+1,并显示
// char arr1[101][101],arr2[101][101];
// int main()
// {
// int n,m;
// cin>>n>>m;
// memset(arr2,'0',101*101*sizeof(char));
// for(int i =1;i<=n;i++)
// {
// for(int j=1;j<=m;j++)
// {
// cin>>arr1[i][j];
// }
// }
// //排查
// for(int i =1;i<=n;i++)
// {
// for(int j=1;j<=m;j++)
// {
// if(arr1[i][j]=='*')
// {
// arr2[i - 1][j-1]++;
// arr2[i - 1][j]++;
// arr2[i - 1][j + 1]++;
// arr2[i][j - 1]++;
// arr2[i][j + 1]++;
// arr2[i + 1][j - 1]++;
// arr2[i + 1][j]++;
// arr2[i + 1][j + 1]++;
// }
// }
// }
// //输出
// for(int i =1;i<=n;i++)
// {
// for(int j=1;j<=m;j++)
// {
// if(arr1[i][j]=='*')
// cout<<arr1[i][j];
// else
// cout<<arr2[i][j];
// }
// cout<<endl;
// }
// }
//1563
// 1.输入小人朝向和职业(两个变量)用两个数组来存储
// 2.输入左右方向和距离(两个变量)
// 3.行列(两个变量)
// 4.00 11 顺时针,01 10逆时针
// int arr1[2000];
// char arr2[2000][20];
// int main()
// {
// int n,m,dir,tan;
// int target=0;
// cin>>n>>m;
// for(int i=0;i<n;i++)
// {
// cin>>arr1[i]>>arr2[i];
// }
// for(int i =0;i<m;i++)
// {
// cin>>dir>>tan;
// if(arr1[target]==dir)
// {
// target = target-tan;
// if(target<0)
// {
// target = n-(-target)%n;
// }
// }
// else
// {
// target = target+tan;
// if(target>=n)
// {
// target = (target)%n;
// }
// }
// }
// cout<<arr2[target];
// }
//高精度问题
//p1009
// 1.分成n份高精度求和
// 2.每个n!是高精度乘法
// string mul(string s1,int n)//高精度*低精度
// {
// int arr1[100],arr2[100];
// memset(arr1,0,100*sizeof(int));
// memset(arr2,0,100*sizeof(int));
// int len_s1 = s1.length();
// int len_s2 = len_s1;
// string c;
// //逆序存储
// for(int i =0;i<len_s1;i++)
// {
// arr1[i] = s1[len_s1-1-i]-'0';
// }
// //乘
// for(int i =0;i<len_s1;i++)
// {
// arr2[i] +=arr1[i]*n;
// if(arr2[i]>10)
// {
// arr2[i+1]+=arr2[i]/10;
// arr2[i]%=10;
// }
// }
// //长度
// while(arr2[len_s2]>=10)
// {
// arr2[len_s2+1]=arr2[len_s2]/10;
// arr2[len_s2]%=10;
// len_s2++;
// }
// for(int i =0;i<len_s2;i++)
// {
// c += to_string(arr2[len_s2-1-i]);
// }
// return c;
// }
// string add(string s1,string s2)//高精度+高精度
// {
// int arr1[100],arr2[100],arr3[100];
// memset(arr1,0,100*sizeof(int));
// memset(arr2,0,100*sizeof(int));
// memset(arr3,0,100*sizeof(int));
// int len_s1 = s1.length();
// int len_s2 = s2.length();
// int len_s3 = (len_s1>len_s2)?len_s1:len_s2;
// string c;
// //逆序存储
// for(int i =0;i<len_s1;i++)
// {
// arr1[i] = s1[len_s1-1-i]-'0';
// }
// for(int i =0;i<len_s2;i++)
// {
// arr2[i] = s2[len_s2-1-i]-'0';
// }
// //加
// for(int i =0;i<len_s1;i++)
// {
// arr3[i]+=arr1[i]+arr2[i];
// if(arr3[i]>10)
// {
// arr3[i+1]+=arr3[i]/10;
// arr3[i]%=10;
// }
// }
// //长度
// if(arr3[len_s3]>0)len_s3++;
// for(int i =0;i<len_s3;i++)
// {
// c += to_string(arr3[len_s3-1-i]);
// }
// return c;
// }
// int main()
// {
// int n;
// cin>>n;
// string item = "1";
// string S = "0";
// for(int i =1;i<=n;i++)
// {
// item = mul(item,i);
// S = add(S,item);
// }
// cout<<S;
// // cout<<add("1423","435");
// }
//p1518
//1.开一个字符数组,存输入值
//2.记录牛,人坐标(4个全局变量)
//3.记录牛,人方向(2个全局变量)
//4.移动函数->返回坐标
// int x_a,y_a,x_b,y_b;
// int dir_a = 0,dir_b =0;//向北
// char arr[12][12];
// int mytime =0;
// void move(int &x,int &y,int &dir)
// {
// int xi = x;
// int yi = y;
// int diri = dir;
// if(diri==0)xi--;
// else if(diri ==1)yi++;
// else if(diri ==2)xi++;
// else if(diri ==3)yi--;
// //判断障碍物
// if(arr[xi][yi]=='*')
// {
// dir = (++dir)%4;
// }
// else
// {
// x = xi;
// y = yi;
// }
// }
// int main()
// {
// //初始化
// memset(arr,'*',12*12*sizeof(char));
// for(int i =1;i<=10;i++)
// {
// for(int j =1;j<=10;j++)
// {
// cin>>arr[i][j];
// if(arr[i][j]=='C')
// {
// x_a = i;
// y_a = j;
// }
// else if(arr[i][j]=='F')
// {
// x_b = i;
// y_b = j;
// }
// }
// }
// //寻找
// while(1)
// {
// mytime++;
// move(x_a,y_a,dir_a);
// move(x_b,y_b,dir_b);
// if((x_a==x_b)&&(y_a==y_b))
// {
// cout<<mytime;
// break;
// }
// if(mytime>100000)
// {
// cout<<0;
// break;
// }
// }
// }
//p1098