protected String get_sub_cipher(String p,int start,int end,HashMap<Character,Pair<Integer>> h_map,char[][] square)
	{
		StringBuilder sb=new StringBuilder();
		for(int i=start;i<end;i++)
		{
			char cur_c=Character.toUpperCase(p.charAt(i));
			if(cur_c=='J')
			{
				cur_c='I';
			}
			Pair<Integer> row_col=h_map.get(cur_c);
			int row=row_col.get_first();
			int col=row_col.get_second();
			int next_col=col+1;
			if(col==square[0].length-1)
			{
				next_col=0;
			}
			int next_row=row+1;
			if(row==square.length-1)
			{
				next_row=0;
			}
			sb.append(square[next_row][next_col]);
		}
		return sb.toString();
	}