#include <iostream>
#include <vector>
#define Maxm 101
#define Maxcp 19
using namespace std;
struct node
{
char val;
int index;
};
struct dim
{
int x;
int y;
int index;
};
class Orienteering
{
public:
void main();
protected:
private:
void setWH(int w,int h);
void Root(int p,int q);
int W,H;
int p,q,k,m;
int Vertex,Line[Maxm];
int Path[Maxm][Maxm],Dist[Maxm][Maxm];
node Map[Maxm][Maxm];
dim lst[Maxm*Maxm];
dim checkpoit[Maxcp];
int checkpointnum;
int S;
int G;
int find(int (*p)[Maxcp+3],int val,int len)