#include<iostream>
#include<vector>
#include<utility>
#include <algorithm>
#include<iterator>
#include<map>
#include<list>
#include<deque>
#include<string>
#define len ('a'-'A')
using namespace std;
class PlayFair
{
private:
char word;
vector<char> key_vec;
pair<int,int> ipar;
map<pair<int,int>,char> key_map;
deque<char> plaintext_En;
deque<char> plaintext_De;
deque<char> ciphertext_En;
deque<char> ciphertext_De;
public:
void Encryption();
void Decryption();
void Key();
};
void PlayFair::Key()
{
key_vec.clear();
key_map.clear();
cout<<"Please input the defult insertor: ";
cin>>word;
if(word>='a'&&word<='z') word-=len;
if(word == 'J') word = 'I';
char ch;
cout<<"Please input the key(Crtl+d to stop): ";
while(cin>>ch)
{
if(ch>'z'||ch<'A'||(ch>'Z'&&ch<'a')) continue;
if(ch>='a'&&ch<='z') ch-=len;
if(ch=='J') ch = 'I';
vector<char>::iterator iter = find(key_vec.begin(),key_vec.end(),ch);
if(key_vec.end()==iter)
key_vec.push_back(ch);
}
// cout<<key.size()<<endl;
for(char c='A';c<='Z';c++)