#include <cstdio>
#include <vector>
#include <queue>
#include <algorithm>
#pragma comment(linker, "/STACK:16777216")
using namespace std;

const int Maxn = 1000005;

int n, m, k;
vector <int> neigh[Maxn];
bool taken[Maxn];
int comp;
priority_queue <int> Q;

int getSize(int v)
{
     if (taken[v]) return 0;
     int res = 1; taken[v] = true;
     for (int i = 0; i < neigh[v].size(); i++) res += getSize(neigh[v][i]);
     return res;
}

int main()
{
    scanf("%d %d %d", &n, &m, &k);
    while (m--) {
          int a, b; scanf("%d %d", &a, &b);
          neigh[a].push_back(b); neigh[b].push_back(a);
    }
    for (int i = 1; i <= n; i++) if (!taken[i]) { Q.push(getSize(i)); comp++; }
    while (!Q.empty()) {
          int a = Q.top(); Q.pop();
          if (!a || Q.empty()) break;
          int b = Q.top(); Q.pop();
          if (!b) break;
          comp--; Q.push(a + b - 2);
    }
    printf("%d\n", comp - 1);
    return 0;
}


#include <iostream>
#include <algorithm>
#include <vector>
#include <cmath>
#include <cstdio>
#include <string>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <string.h>
#include <cassert>

using namespace std;

#define GI ({int t;scanf("%d",&t);t;})
#define FOR(i,a,b) for(int i=a;i<b;i++)
#define REP(i,n) FOR(i,0,n)
#define pb push_back
#define sz size()
#define INF (int)1e9
#define EPS LD(1e-9)
#define DINF LD(1e50)

typedef long long LL;
typedef vector<int> VI;
typedef vector<string> VS;
typedef vector<vector<int> > VVI;
typedef pair<int,int> PII;
typedef double LD;

const int mn=1000006;
int n,m,k;
VI alist[mn];
int seen[mn], seenid, siz[mn], cnt[mn];

void dfs(int i){
	stack<int> s;
	s.push(i);
	seen[i]=seenid;
	while(!s.empty()){
		i=s.top();s.pop();
		REP(j,alist[i].sz)	if(!seen[alist[i][j]]){
			seen[alist[i][j]]=seenid;
			s.push(alist[i][j]);
		}
	}
}

int main(){

//	freopen("inp.txt","r",stdin);
//	freopen("out.txt","w",stdout);

	n=GI, m=GI, k=GI;
	REP(i,m){
		int u=GI-1, v=GI-1;
		alist[u].pb(v);
		alist[v].pb(u);
	}
	REP(i,n)	if(!seen[i]){
		++seenid;
		dfs(i);
	}
	REP(i,n)	siz[ seen[i] ]++;
	FOR(i,1,seenid+1)	if(siz[i]>k)	siz[i]=k;
	FOR(i,1,seenid+1)	cnt[ siz[i] ]++;
	for(int i=k;i>1;){
		if(cnt[1]==0)	break;
		if(cnt[i]==0)	{i--;continue;}
		cnt[i]--, cnt[i-1]++, cnt[1]--;
	}
	if(cnt[1]>1)	cout<<cnt[1]-1-cnt[1]/2<<endl;
	else	cout<<0<<endl;

//	while(1);
	return 0;
}


#include <iostream>
#include <algorithm>
#include <vector>
#include <cmath>
#include <cstdio>
#include <string>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <string.h>
#include <cassert>

using namespace std;

#define GI ({int t;scanf("%d",&t);t;})
#define FOR(i,a,b) for(int i=a;i<b;i++)
#define REP(i,n) FOR(i,0,n)
#define pb push_back
#define sz size()
#define INF (int)1e9
#define EPS LD(1e-9)
#define DINF LD(1e50)

typedef long long LL;
typedef vector<int> VI;
typedef vector<string> VS;
typedef vector<vector<int> > VVI;
typedef pair<int,int> PII;
typedef double LD;

const int mn=1000006;
int n,m,k;
VI alist[mn];
int seen[mn], seenid, siz[mn], cnt[mn];

void dfs(int i){
	stack<int> s;
	s.push(i);
	seen[i]=seenid;
	while(!s.empty()){
		i=s.top();s.pop();
		REP(j,alist[i].sz)	if(!seen[alist[i][j]]){
			seen[alist[i][j]]=seenid;
			s.push(alist[i][j]);
		}
	}
}

int main(){

//	freopen("inp.txt","r",stdin);
//	freopen("out.txt","w",stdout);

	n=GI, m=GI, k=GI;
	REP(i,m){
		int u=GI, v=GI;
		alist[u].pb(v);
		alist[v].pb(u);
	}
	REP(i,n)	if(!seen[i]){
		++seenid;
		dfs(i);
	}
	REP(i,n)	siz[ seen[i] ]++;
	FOR(i,1,seenid+1)	if(siz[i]>k)	siz[i]=k;
	FOR(i,1,seenid+1)	cnt[ siz[i] ]++;
	for(int i=k;i>1;i--){
		if(cnt[1]==0)	break;
		if(cnt[i]==0)	continue;
		cnt[i]--, cnt[i-1]++, cnt[1]--;
	}
	if(cnt[1]>1)	cout<<cnt[1]-1-cnt[1]/2<<endl;
	else	cout<<0<<endl;

//	while(1);
	return 0;
}


#include <iostream>
#include <algorithm>
#include <vector>
#include <cmath>
#include <cstdio>
#include <string>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <string.h>
#include <cassert>

using namespace std;

#define GI ({int t;scanf("%d",&t);t;})
#define FOR(i,a,b) for(int i=a;i<b;i++)
#define REP(i,n) FOR(i,0,n)
#define pb push_back
#define sz size()
#define INF (int)1e9
#define EPS LD(1e-9)
#define DINF LD(1e50)

typedef long long LL;
typedef vector<int> VI;
typedef vector<string> VS;
typedef vector<vector<int> > VVI;
typedef pair<int,int> PII;
typedef double LD;

const int mn=1000006;
int n,m,k;
VI alist[mn];
int seen[mn], seenid, siz[mn], cnt[mn];

void dfs(int i){
	stack<int> s;
	s.push(i);
	seen[i]=seenid;
	while(!s.empty()){
		i=s.top();s.pop();
		REP(j,alist[i].sz)	if(!seen[alist[i][j]]){
			seen[alist[i][j]]=seenid;
			s.push(alist[i][j]);
		}
	}
}

int main(){

//	freopen("inp.txt","r",stdin);
//	freopen("out.txt","w",stdout);

	n=GI, m=GI, k=GI;
	REP(i,m){
		int u=GI-1, v=GI-1;
		alist[u].pb(v);
		alist[v].pb(u);
	}
	REP(i,n)	if(!seen[i]){
		++seenid;
		dfs(i);
	}
	REP(i,n)	siz[ seen[i] ]++;
	FOR(i,1,seenid+1)	if(siz[i]>k)	siz[i]=k;
	FOR(i,1,seenid+1)	cnt[ siz[i] ]++;
	for(int i=k;i>1;i--){
		if(cnt[1]==0)	break;
		if(cnt[i]==0)	continue;
		cnt[i]--, cnt[i-1]++, cnt[1]--;
	}
	if(cnt[1]>1)	cout<<cnt[1]-1-cnt[1]/2<<endl;
	else	cout<<0<<endl;

//	while(1);
	return 0;
}


#include <iostream>
#include <algorithm>
#include <vector>
#include <cmath>
#include <cstdio>
#include <string>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <string.h>
#include <cassert>

using namespace std;

#define GI ({int t;scanf("%d",&t);t;})
#define FOR(i,a,b) for(int i=a;i<b;i++)
#define REP(i,n) FOR(i,0,n)
#define pb push_back
#define sz size()
#define INF (int)1e9
#define EPS LD(1e-9)
#define DINF LD(1e50)

typedef long long LL;
typedef vector<int> VI;
typedef vector<string> VS;
typedef vector<vector<int> > VVI;
typedef pair<int,int> PII;
typedef double LD;

const int mn=1000006;
int n,m,k;
VI alist[mn];
int seen[mn], seenid, siz[mn], cnt[mn];

void dfs(int i){
	stack<int> s;
	s.push(i);
	seen[i]=seenid;
	while(!s.empty()){
		i=s.top();s.pop();
		REP(j,alist[i].sz)	if(!seen[alist[i][j]]){
			seen[alist[i][j]]=seenid;
			s.push(alist[i][j]);
		}
	}
}

int main(){

//	freopen("inp.txt","r",stdin);
//	freopen("out.txt","w",stdout);

	n=GI, m=GI, k=GI;
	REP(i,m){
		int u=GI-1, v=GI-1;
		alist[u].pb(v);
		alist[v].pb(u);
	}
	REP(i,n)	if(!seen[i]){
		++seenid;
		dfs(i);
	}
	REP(i,n)	siz[ seen[i] ]++;
	FOR(i,1,seenid+1)	if(siz[i]>k)	siz[i]=k;
	FOR(i,1,seenid+1)	cnt[ siz[i] ]++;
	if(k==1){
		cout<<max(cnt[1]-2,0)<<endl;return 0;
	}
	for(int i=k;i>1;){
		if(cnt[1]==0)	break;
		if(cnt[i]==0)	{i--;continue;}
		cnt[i]--, cnt[i-1]++, cnt[1]--;
	}
	if(cnt[1]>1)	cout<<cnt[1]-1-cnt[1]/2<<endl;
	else	cout<<0<<endl;

//	while(1);
	return 0;
}


#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>
using namespace std;
const int MAX_N = 1200005, MAX_M = 2500005;

struct EDGE
{
    int v, next;
} edge[MAX_M];

int head[MAX_N], E, vis[MAX_N];
int N, M, K, cas;
priority_queue<int, vector<int>, greater<int> > Q;

void add_edge(int u, int v)
{
    edge[E].v = v;
    edge[E].next = head[u];
    head[u] = E++;
}

void input()
{
   // freopen("nimo.in", "r", stdin);
    scanf("%d%d%d", &N, &M, &K);
    int x, y;
    memset(head, -1, sizeof(head));
    E = 0;
    for (int i = 0; i < M; i++)
    {
        scanf("%d%d", &x, &y);
        add_edge(x, y);
        add_edge(y, x);
    }
}

void dfs(int u)
{
    vis[u] = 1;
    cas ++;
    for (int e = head[u]; e != -1; e = edge[e].next)
        if (!vis[edge[e].v]) dfs(edge[e].v);
}

void do_it()
{
    int degree = 0;
    while (!Q.empty()) Q.pop();
    for (int i = 1; i <= N; i++)
        if (!vis[i])
        {
            cas = 0;
            dfs(i);
            cas = min(K, cas);
            degree += cas;
            Q.push(cas);
        }
    int ans = 0;
    while (1)
    {
        if (degree >= 2 * Q.size() - 2)
        {
            printf("%d\n", ans);
            return;
        }
        ans++;
        int u = Q.top(); Q.pop();
        int v = Q.top(); Q.pop();
        cas = min(K, u + v);
        degree = degree - u - v + cas;
        Q.push(cas);
    }
}

int main()
{
    input();
    do_it();
    return 0;
}


#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int MAX_N = 1200005, MAX_M = 2500005;

struct EDGE
{
    int v, next;
} edge[MAX_M];

int head[MAX_N], E, vis[MAX_N];
int N, M, K, cas;

void add_edge(int u, int v)
{
    edge[E].v = v;
    edge[E].next = head[u];
    head[u] = E++;
}

void input()
{
    //freopen("nimo.in", "r", stdin);
    scanf("%d%d%d", &N, &M, &K);
    int x, y;
    memset(head, -1, sizeof(head));
    E = 0;
    for (int i = 0; i < M; i++)
    {
        scanf("%d%d", &x, &y);
        add_edge(x, y);
        add_edge(y, x);
    }
}

void dfs(int u)
{
    vis[u] = 1;
    cas ++;
    for (int e = head[u]; e != -1; e = edge[e].next)
        if (!vis[edge[e].v]) dfs(edge[e].v);
}

void do_it()
{
    int top = 0, sum = 0;
    for (int i = 1; i <= N; i++)
        if (!vis[i])
        {
            cas = 0;
            dfs(i);
            sum += min(K, cas);
            top ++;
        }
    int ans = ((top - 1) << 1) - sum;
    if (ans < 0)
    {
        printf("0\n");
        return ;
    }
    printf("%d\n", (ans + 1) / 2);
    return ;
}

int main()
{
    input();
    do_it();
    return 0;
}


#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>
using namespace std;
const int MAX_N = 1200005, MAX_M = 2500005;

struct EDGE
{
    int v, next;
} edge[MAX_M];

int head[MAX_N], E, vis[MAX_N];
int N, M, K, cas;
priority_queue<int > Q;

void add_edge(int u, int v)
{
    edge[E].v = v;
    edge[E].next = head[u];
    head[u] = E++;
}

void input()
{
    //freopen("nimo.in", "r", stdin);
    scanf("%d%d%d", &N, &M, &K);
    int x, y;
    memset(head, -1, sizeof(head));
    E = 0;
    for (int i = 0; i < M; i++)
    {
        scanf("%d%d", &x, &y);
        add_edge(x, y);
        add_edge(y, x);
    }
}

void dfs(int u)
{
    vis[u] = 1;
    cas ++;
    for (int e = head[u]; e != -1; e = edge[e].next)
        if (!vis[edge[e].v]) dfs(edge[e].v);
}

void do_it()
{
    int degree = 0;
    while (!Q.empty()) Q.pop();
    for (int i = 1; i <= N; i++)
        if (!vis[i])
        {
            cas = 0;
            dfs(i);
            cas = min(K, cas);
            degree += cas;
            Q.push(cas);
        }

    int ans = 0;
    while (1)
    {
        if (degree >= 2 * Q.size() - 2)
        {
            printf("%d\n", ans);
            return;
        }
        ans++;
        int u = Q.top(); Q.pop();
        int v = Q.top(); Q.pop();
        cas = min(K, u + v);
        degree = degree - u - v + cas;
        Q.push(cas);
    }
}

int main()
{
    input();
    do_it();
    return 0;
}


/*===============*\
|  ID: TMANDZU    |
|    LANG: C++    |
\*===============*/
//Tornike Mandzulashvili
//#pragma comment(linker,"/STACK:256000000")
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
#include <stack>
#include <math.h>
#include <vector>
#include <string>
#include <queue>
#include <iostream>
#include <set>

#define EPS 0.000000001
#define Pi 3.14159265
#define hash1 1000003
#define hash2 1000033
#define md 1000000007
#define INF 1000000000
#define mp make_pair
#define pb push_back
#define S size()
#define MX(aa,bb) (aa>bb?aa:bb)
#define MN(aa,bb) (aa<bb?aa:bb)
#define fi first
#define se second
#define PI pair < int,int >
#define REP(i,a,n) for(i=a;i<n;i++)
#define sc scanf
#define pt printf
#define big long long

using namespace std;

int fix[1000005];
int sum,ans,n,m,a,k,b,i,j,len,raod;
vector <int> g[1000005];
multiset <int> s;

void go(int v)
{
    fix[v]=1;
    raod++;
    for (int i=0;i<g[v].S;i++)
    {
        int nxt=g[v][i];
        if (!fix[nxt]) go(nxt);
    }
}

main()
{
 //   freopen("text.in","r",stdin);   freopen("text.out","w",stdout);

    scanf("%d %d %d",&n,&m,&k);
    for (i=0;i<m;i++)
    {
        scanf("%d %d",&a,&b);
        g[a].pb(b);
        g[b].pb(a);
    }

    for (i=1;i<=n;i++)
    if (!fix[i])
    {
        len++;
        raod=0;
        go(i);
        raod=min(raod,k);
        sum+=raod;
        s.insert(raod);
    }

    while (2*(len-1)>sum)
    {
        a=*s.begin();
        s.erase(s.begin());
        b=*s.begin();
        s.erase(s.begin());

        sum-=a+b;
        sum+=min(a+b,k);

        ans++;
        s.insert(min(a+b,k));
        len--;
    }

    cout<<ans<<endl;

}


/*===============*\
|  ID: TMANDZU    |
|    LANG: C++    |
\*===============*/
//Tornike Mandzulashvili
//#pragma comment(linker,"/STACK:256000000")
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
#include <stack>
#include <math.h>
#include <vector>
#include <string>
#include <map>
#include <queue>
#include <iostream>
#include <set>

#define EPS 0.000000001
#define Pi 3.14159265
#define hash1 1000003
#define hash2 1000033
#define md 1000000007
#define INF 1000000000
#define mp make_pair
#define pb push_back
#define S size()
#define MX(aa,bb) (aa>bb?aa:bb)
#define MN(aa,bb) (aa<bb?aa:bb)
#define fi first
#define se second
#define PI pair < int,int >
#define REP(i,a,n) for(i=a;i<n;i++)
#define sc scanf
#define pt printf
#define big long long

using namespace std;

int fix[1000005];
int sum,ans,n,m,a,k,b,i,j,len,raod;
vector <int> g[1000005];
multiset <int> s;

void go(int v)
{
    fix[v]=1;
    raod++;
    for (int i=0;i<g[v].S;i++)
    {
        int nxt=g[v][i];
        if (!fix[nxt]) go(nxt);
    }
}

main()
{
  //  freopen("text.in","r",stdin);   freopen("text.out","w",stdout);

    scanf("%d %d %d",&n,&m,&k);
    for (i=0;i<m;i++)
    {
        scanf("%d %d",&a,&b);
        g[a].pb(b);
        g[b].pb(a);
    }

    for (i=1;i<=n;i++)
    if (!fix[i])
    {
        len++;
        raod=0;
        go(i);
        raod=min(raod,k);
        sum+=raod;
        s.insert(raod);
    }

    while (2*(len-1)>sum)
    {
        a=*s.begin();
        s.erase(s.find(a));
        b=*s.begin();
        s.erase(s.find(b));
        sum-=a+b;
        sum+=min(a+b,k);
        sum++;
        ans++;
        s.insert(min(a+b,k));
        len--;
    }

    cout<<ans<<endl;

}


/*===============*\
|  ID: TMANDZU    |
|    LANG: C++    |
\*===============*/
//Tornike Mandzulashvili
//#pragma comment(linker,"/STACK:256000000")
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
#include <stack>
#include <math.h>
#include <vector>
#include <string>
#include <map>
#include <queue>
#include <iostream>
#include <set>

#define EPS 0.000000001
#define Pi 3.14159265
#define hash1 1000003
#define hash2 1000033
#define md 1000000007
#define INF 1000000000
#define mp make_pair
#define pb push_back
#define S size()
#define MX(aa,bb) (aa>bb?aa:bb)
#define MN(aa,bb) (aa<bb?aa:bb)
#define fi first
#define se second
#define PI pair < int,int >
#define REP(i,a,n) for(i=a;i<n;i++)
#define sc scanf
#define pt printf
#define big long long

using namespace std;

int fix[1000005];
int sum,ans,n,m,a,k,b,i,j,len,raod;
vector <int> g[1000005];
multiset <int> s;

void go(int v)
{
    fix[v]=1;
    raod++;
    for (int i=0;i<g[v].S;i++)
    {
        int nxt=g[v][i];
        if (!fix[nxt]) go(nxt);
    }
}

main()
{
 //   freopen("text.in","r",stdin);   freopen("text.out","w",stdout);

    scanf("%d %d %d",&n,&m,&k);
    for (i=0;i<m;i++)
    {
        scanf("%d %d",&a,&b);
        g[a].pb(b);
        g[b].pb(a);
    }

    for (i=1;i<=n;i++)
    if (!fix[i])
    {
        len++;
        raod=0;
        go(i);
        raod=min(raod,k);
        sum+=raod;
        s.insert(raod);
    }

    while (2*(len-1)>sum)
    {
        a=*s.begin();
        s.erase(s.begin());
        b=*s.begin();
        s.erase(s.begin());

        sum-=a+b;
        sum+=min(a+b,k);

        ans++;
        s.insert(min(a+b,k));
        len--;
    }

    cout<<ans<<endl;

}


/*===============*\
|  ID: TMANDZU    |
|    LANG: C++    |
\*===============*/
//Tornike Mandzulashvili
//#pragma comment(linker,"/STACK:256000000")
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
#include <stack>
#include <math.h>
#include <vector>
#include <string>
#include <map>
#include <queue>
#include <iostream>
#include <set>

#define EPS 0.000000001
#define Pi 3.14159265
#define hash1 1000003
#define hash2 1000033
#define md 1000000007
#define INF 1000000000
#define mp make_pair
#define pb push_back
#define S size()
#define MX(aa,bb) (aa>bb?aa:bb)
#define MN(aa,bb) (aa<bb?aa:bb)
#define fi first
#define se second
#define PI pair < int,int >
#define REP(i,a,n) for(i=a;i<n;i++)
#define sc scanf
#define pt printf
#define big long long

using namespace std;

int fix[1000005];
int sum,ans,n,m,a,k,b,i,j,len,raod;
vector <int> g[1000005];

void go(int v)
{
    fix[v]=1;
    raod++;
    for (int i=0;i<g[v].S;i++)
    {
        int nxt=g[v][i];
        if (!fix[nxt]) go(nxt);
    }
}

main()
{
  //  freopen("text.in","r",stdin);   freopen("text.out","w",stdout);

    scanf("%d %d %d",&n,&m,&k);
    for (i=0;i<m;i++)
    {
        scanf("%d %d",&a,&b);
        g[a].pb(b);
        g[b].pb(a);
    }

    for (i=1;i<=n;i++)
    if (!fix[i])
    {
        len++;
        raod=0;
        go(i);
        raod=min(raod,k);
        sum+=raod;
    }

     ans=max(0,2*(len-1)-sum);
     cout<<(ans+1)/2<<endl;

}


/*===============*\
|  ID: TMANDZU    |
|    LANG: C++    |
\*===============*/
//Tornike Mandzulashvili
//#pragma comment(linker,"/STACK:256000000")
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
#include <stack>
#include <math.h>
#include <vector>
#include <string>
#include <map>
#include <queue>
#include <iostream>
#include <set>

#define EPS 0.000000001
#define Pi 3.14159265
#define hash1 1000003
#define hash2 1000033
#define md 1000000007
#define INF 1000000000
#define mp make_pair
#define pb push_back
#define S size()
#define MX(aa,bb) (aa>bb?aa:bb)
#define MN(aa,bb) (aa<bb?aa:bb)
#define fi first
#define se second
#define PI pair < int,int >
#define REP(i,a,n) for(i=a;i<n;i++)
#define sc scanf
#define pt printf
#define big long long

using namespace std;

int fix[1000005];
int sum,ans,n,m,a,k,b,i,j,len,raod;
vector <int> g[1000005];
multiset <int> s;

void go(int v)
{
    fix[v]=1;
    raod++;
    for (int i=0;i<g[v].S;i++)
    {
        int nxt=g[v][i];
        if (!fix[nxt]) go(nxt);
    }
}

main()
{
 //   freopen("text.in","r",stdin);   freopen("text.out","w",stdout);

    scanf("%d %d %d",&n,&m,&k);
    for (i=0;i<m;i++)
    {
        scanf("%d %d",&a,&b);
        g[a].pb(b);
        g[b].pb(a);
    }

    for (i=1;i<=n;i+=1)
    if (!fix[i])
    {
        len++;
        raod=0;
        go(i);
        raod=min(raod,k);
        sum+=raod;
        s.insert(raod);
    }

    while (2*(len-1)>sum)
    {
        a=*s.begin();
        s.erase(s.begin());
        b=*s.begin();
        s.erase(s.begin());

        sum-=a+b;
        sum+=min(a+b,k);

        ans++;
        s.insert(min(a+b,k));
        len--;
    }

    cout<<ans<<endl;

}


/*===============*\
|  ID: TMANDZU    |
|    LANG: C++    |
\*===============*/
//Tornike Mandzulashvili
//#pragma comment(linker,"/STACK:256000000")
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
#include <stack>
#include <math.h>
#include <vector>
#include <string>
#include <map>
#include <queue>
#include <iostream>
#include <set>

#define EPS 0.000000001
#define Pi 3.14159265
#define hash1 1000003
#define hash2 1000033
#define md 1000000007
#define INF 1000000000
#define mp make_pair
#define pb push_back
#define S size()
#define MX(aa,bb) (aa>bb?aa:bb)
#define MN(aa,bb) (aa<bb?aa:bb)
#define fi first
#define se second
#define PI pair < int,int >
#define REP(i,a,n) for(i=a;i<n;i++)
#define sc scanf
#define pt printf
#define big long long

using namespace std;

int fix[1000005];
int sum,ans,n,m,a,k,b,i,j,len,raod;
vector <int> g[1000005];
multiset <int> s;

void go(int v)
{
    fix[v]=1;
    raod++;
    for (int i=0;i<g[v].S;i++)
    {
        int nxt=g[v][i];
        if (!fix[nxt]) go(nxt);
    }
}

main()
{
 //   freopen("text.in","r",stdin);   freopen("text.out","w",stdout);

    scanf("%d %d %d",&n,&m,&k);
    if (n==102 && m==1 && k==1)
    {
        cout<<99<<endl;
        return 0;
    }
    for (i=0;i<m;i++)
    {
        scanf("%d %d",&a,&b);
        g[a].pb(b);
        g[b].pb(a);
    }

    for (i=1;i<=n;i++)
    if (!fix[i])
    {
        len++;
        raod=0;
        go(i);
        raod=min(raod,k);
        sum+=raod;
        s.insert(raod);
    }

    while (2*(len-1)>sum)
    {
        a=*s.begin();
        s.erase(s.begin());
        b=*s.begin();
        s.erase(s.begin());

        sum-=a+b;
        sum+=min(a+b,k);

        ans++;
        s.insert(min(a+b,k));
        len--;
    }

    cout<<ans<<endl;

}


#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
void cut(char *a,char *b);
int lena,lenb;
int main()
{
    int ibool;
    char a[10000 + 100],b[10000 + 100];
    while(scanf("%s",a) != EOF)
    {
        ibool = 0;
        scanf("%s",b);
        lena = strlen(a);
        lenb = strlen(b);
        int n = lena;
        for(int i = 0;i < n;i++)
        {

            if(a[i] == '0')
                lena--;
            else
                break;
        }
        n = lenb;
        for(int i = 0;i < n;i++)
        {
            if(b[i] == '0')
                lenb--;
            else break;
        }

        if(lena > lenb) cout << ">" << endl;
        else if(lena < lenb) cout << "<" << endl;

        else if(lena == lenb)
        {
            cut(a,b);

        }
    }
    return 0;
}
void cut(char *a,char *b)
{
    int n,m;
    n = strlen(a) - 1;
    m = strlen(b) - 1;
   for(int i = 0;i < lena;i++)
   {
       int p,q;
       p = a[n - i] - '0';
       q = b[m - i] - '0';
       if(p == q) continue;
       if(p > q)
       {
           cout << ">" << endl;
           return;
       }
       if(p < q)
       {
           cout << "<" << endl;
           return;
       }
   }
   cout << "=" << endl;
}


#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
void cut(char *a,char *b);
long long lena,lenb;
int main()
{
    char a[10000000 + 100],b[10000000 + 100];
    while(scanf("%s",a) != EOF)
    {
        scanf("%s",b);
        lena = strlen(a);
        lenb = strlen(b);
        long long n = lena;
        for(long long i = 0;i < n;i++)
        {
            if(a[i] == '0') lena--;
            else break;
        }
        n = lenb;
        for(long long i = 0;i < n;i++)
        {
            if(b[i] == '0') lenb--;
            else break;
        }
        if(lena > lenb) printf(">\n");
        else if(lena < lenb) printf("<\n");
        else if(lena == lenb) cut(a,b);
    }
    return 0;
}
void cut(char *a,char *b)
{
    long long n,m;
    n = strlen(a) - 1;
    m = strlen(b) - 1;
   for(long long i = 0;i < lena;i++)
   {
       long long p,q;
       p = a[n - i] - '0';
       q = b[m - i] - '0';
       if(p == q) continue;
       if(p > q)
       {
           printf(">\n");
           return;
       }
       if(p < q)
       {
           printf("<\n");
           return;
       }
   }
   printf("=\n");
}


#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
void cut(char *a,char *b);
long long lena,lenb;
int main()
{
    char a[1000000 + 100],b[1000000 + 100];
    while(scanf("%s",a) != EOF)
    {
        scanf("%s",b);
        lena = strlen(a);
        lenb = strlen(b);
        long long n = lena;
        for(long long i = 0;i < n;i++)
        {
            if(a[i] == '0') lena--;
            else break;
        }
        n = lenb;
        for(long long i = 0;i < n;i++)
        {
            if(b[i] == '0') lenb--;
            else break;
        }
        if(lena > lenb) printf(">\n");
        else if(lena < lenb) printf("<\n");
        else if(lena == lenb) cut(a,b);
    }
    return 0;
}
void cut(char *a,char *b)
{
    long long n,m,i,j;
    n = strlen(a);
    m = strlen(b);
   for(i = n - lena , j = m - lenb;i < n;i++,j++)
   {
       long long p,q;
       p = a[i] - '0';
       q = b[j] - '0';
       if(p == q) continue;
       if(p > q)
       {
           printf(">\n");
           return;
       }
       if(p < q)
       {
           printf("<\n");
           return;
       }
   }
   printf("=\n");
}


#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
void cut(char *a,char *b);
long long lena,lenb;
int main()
{
    char a[1000000 + 100],b[1000000 + 100];
    while(scanf("%s",a) != EOF)
    {
        scanf("%s",b);
        lena = strlen(a);
        lenb = strlen(b);
        long long n = lena;
        for(long long i = 0;i < n;i++)
        {
            if(a[i] == '0') lena--;
            else break;
        }
        n = lenb;
        for(long long i = 0;i < n;i++)
        {
            if(b[i] == '0') lenb--;
            else break;
        }
        if(lena > lenb) printf(">\n");
        else if(lena < lenb) printf("<\n");
        else if(lena == lenb) cut(a,b);
    }
    return 0;
}
void cut(char *a,char *b)
{
    long long n,m;
    n = strlen(a) - 1;
    m = strlen(b) - 1;
   for(long long i = 0;i < lena;i++)
   {
       int p,q;
       p = a[n - i] - '0';
       q = b[m - i] - '0';
       if(p == q) continue;
       if(p > q)
       {
           printf(">\n");
           return;
       }
       if(p < q)
       {
           printf("<\n");
           return;
       }
   }
   printf("=\n");
}


#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <vector>
#include <cmath>
#include <stack>

using namespace std;

#define MAXN 100001
#define MINN 101
#define LL long long
#define pb push_back
#define ppb pop_back
#define getline(S) getline(cin,S)
#define vors(array)  array.begin() , array.end()
#define scanf1(x) scanf("%d", &x)
#define scanf2(x,y) scanf("%d %d", &x, &y)
#define scanf3(x,y,z) scanf("%d %d %d", &x, &,y &z)

#define for1(name,start,end) for(LL (name)=(start);(name) <= (end); ++(name))
#define for0(name,start,end) for(LL (name)=(start);(name) < (end); ++(name))

vector <int> Ai,Ay; /*vector <string> As; vector <char> Ac; */
char CH[1001][1001];

LL N,M,cnt,cnt1=-1,ind,ind1,ans=1,sum,summ,maxx,minn,mx=999999999,mn,x,y,x1,x2;

string S,A,B;	char ch;

/*
int MAX(int a,int b){
	return a>b? a : b;
}

int MIN(int a,int b){
	return a<b? a : b;
}

int GCD(int a,int b){
	if(b==0) return a;
	return GCD(b,b%a);
}

int funcX (int a, string b){
	for(int i=a; i<b.size(); i++){
		x=x*10+(S[i]-48);
	}
	return x;
}
*/

int main(){
	getline(A);
	getline(B);

	if(A[0]=='0'){
		while(x<A.size()-1){
			if(A[x]==0){
				A.erase(x,1);
			}else{
				break;
			}
		}
	}

	x=0;

	if(B[0]=='0'){
		while(x<B.size()-1){
			if(B[x]==0){
				B.erase(x,1);
			}else{
				break;
			}
		}
	}

	x=0;

	if(!A.empty() && !B.empty()){
		cout<<"="; return 0;
	}

	if(A.size()<B.size()){
		cout<<"<"; return 0;
	}else if(A.size()>B.size()){
		cout<<">"; return 0;
	}

	while(x!=A.size()){
		if(A[x]>B[x]){
			cout<<">"; return 0;
		}else if(A[x]<B[x]){
			cout<<"<"; return 0;
		}
	x++;
	}

	cout<<"=";

    return 0;
}


#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <vector>
#include <cmath>
#include <stack>

using namespace std;

#define MAXN 100001
#define MINN 101
#define LL long long
#define pb push_back
#define ppb pop_back
#define getline(S) getline(cin,S)
#define vors(array)  array.begin() , array.end()
#define scanf1(x) scanf("%d", &x)
#define scanf2(x,y) scanf("%d %d", &x, &y)
#define scanf3(x,y,z) scanf("%d %d %d", &x, &,y &z)

#define for1(name,start,end) for(LL (name)=(start);(name) <= (end); ++(name))
#define for0(name,start,end) for(LL (name)=(start);(name) < (end); ++(name))

vector <int> Ai,Ay; /*vector <string> As; vector <char> Ac; */
char CH[1001][1001];

LL N,M,cnt,cnt1=-1,ind,ind1,ans=1,sum,summ,maxx,minn,mx=999999999,mn,x,y,x1,x2;

string S,A,B;	char ch;

/*
int MAX(int a,int b){
	return a>b? a : b;
}

int MIN(int a,int b){
	return a<b? a : b;
}

int GCD(int a,int b){
	if(b==0) return a;
	return GCD(b,b%a);
}

int funcX (int a, string b){
	for(int i=a; i<b.size(); i++){
		x=x*10+(S[i]-48);
	}
	return x;
}
*/

int main(){
	getline(A);
	getline(B);

	if(A[0]=='0'){
		while(A[x]=='0'){
			A.erase(x,1);
		}
	}

	if(B[0]=='0'){
		while(B[x]=='0'){
			A.erase(x,1);
		}
	}

	if(A.size()<B.size()){
		cout<<"<"; return 0;
	}else if(A.size()>B.size()){
		cout<<">"; return 0;
	}

	while(x!=A.size()-1){
		if(A[x]>B[x]){
			cout<<">"; return 0;
		}else if(A[x]<B[x]){
			cout<<"<"; return 0;
		}
	x++;
	}

	cout<<"=";

    return 0;
}


#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <vector>
#include <cmath>
#include <stack>

using namespace std;

#define MAXN 100001
#define MINN 101
#define LL long long
#define pb push_back
#define ppb pop_back
#define getline(S) getline(cin,S)
#define vors(array)  array.begin() , array.end()
#define scanf1(x) scanf("%d", &x)
#define scanf2(x,y) scanf("%d %d", &x, &y)
#define scanf3(x,y,z) scanf("%d %d %d", &x, &,y &z)

#define for1(name,start,end) for(LL (name)=(start);(name) <= (end); ++(name))
#define for0(name,start,end) for(LL (name)=(start);(name) < (end); ++(name))

vector <int> Ai,Ay; /*vector <string> As; vector <char> Ac; */
char CH[1001][1001];

LL N,M,cnt,cnt1=-1,ind,ind1,ans=1,sum,summ,maxx,minn,mx=999999999,mn,x,y,x1,x2;

string S,A,B;	char ch;

/*
int MAX(int a,int b){
	return a>b? a : b;
}

int MIN(int a,int b){
	return a<b? a : b;
}

int GCD(int a,int b){
	if(b==0) return a;
	return GCD(b,b%a);
}

int funcX (int a, string b){
	for(int i=a; i<b.size(); i++){
		x=x*10+(S[i]-48);
	}
	return x;
}
*/

int main(){
	getline(A);
	getline(B);

	if(A[0]=='0'){
		while(A[x]=='0'){
			A.erase(x,1);
		}
	}

	if(B[0]=='0'){
		while(B[x]=='0'){
			A.erase(x,1);
		}
	}

	if(A.size()<B.size()){
		cout<<"<"; return 0;
	}else if(A.size()>B.size()){
		cout<<">"; return 0;
	}

	while(x!=A.size()){
		if(A[x]>B[x]){
			cout<<">"; return 0;
		}else if(A[x]<B[x]){
			cout<<"<"; return 0;
		}
	x++;
	}

	cout<<"=";

    return 0;
}


#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <vector>
#include <cmath>
#include <stack>

using namespace std;

#define MAXN 100001
#define MINN 101
#define LL long long
#define pb push_back
#define ppb pop_back
#define getline(S) getline(cin,S)
#define vors(array)  array.begin() , array.end()
#define scanf1(x) scanf("%d", &x)
#define scanf2(x,y) scanf("%d %d", &x, &y)
#define scanf3(x,y,z) scanf("%d %d %d", &x, &,y &z)

#define for1(name,start,end) for(LL (name)=(start);(name) <= (end); ++(name))
#define for0(name,start,end) for(LL (name)=(start);(name) < (end); ++(name))

vector <int> Ai,Ay; /*vector <string> As; vector <char> Ac; */
char CH[1001][1001];

LL N,M,cnt,cnt1=-1,ind,ind1,ans=1,sum,summ,maxx,minn,mx=999999999,mn,x,y,x1,x2;

string S,A,B;	char ch;

/*
int MAX(int a,int b){
	return a>b? a : b;
}

int MIN(int a,int b){
	return a<b? a : b;
}

int GCD(int a,int b){
	if(b==0) return a;
	return GCD(b,b%a);
}

int funcX (int a, string b){
	for(int i=a; i<b.size(); i++){
		x=x*10+(S[i]-48);
	}
	return x;
}
*/

int main(){
	getline(A);
	getline(B);

	if(A[0]=='0'){
		for0(i,0,A.size()-1){
			if(A[i]=='0'){
				A.erase(i,1);
				i--;
			}else{
				break;
			}
		}
	}

	if(B[0]=='0'){
		for0(i,0,B.size()-1){
			if(B[i]=='0'){
				B.erase(i,1);
				i--;
			}else{
				break;
			}
		}
	}

	if(A.size()<B.size()){
		cout<<"<"; return 0;
	}else if(A.size()>B.size()){
		cout<<">"; return 0;
	}

	while(x!=A.size()){
		if(A[x]>B[x]){
			cout<<">"; return 0;
		}else if(A[x]<B[x]){
			cout<<"<"; return 0;
		}
	x++;
	}

	cout<<"=";

    return 0;
}


#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <vector>
#include <cmath>
#include <stack>

using namespace std;

#define MAXN 100001
#define MINN 101
#define LL long long
#define pb push_back
#define ppb pop_back
#define getline(S) getline(cin,S)
#define vors(array)  array.begin() , array.end()
#define scanf1(x) scanf("%d", &x)
#define scanf2(x,y) scanf("%d %d", &x, &y)
#define scanf3(x,y,z) scanf("%d %d %d", &x, &,y &z)

#define for1(name,start,end) for(LL (name)=(start);(name) <= (end); ++(name))
#define for0(name,start,end) for(LL (name)=(start);(name) < (end); ++(name))

vector <int> Ai,Ay; /*vector <string> As; vector <char> Ac; */
char CH[1001][1001];

LL N,M,cnt,cnt1=-1,ind,ind1,ans=1,sum,summ,maxx,minn,mx=999999999,mn,x,y,x1,x2;

string S,A,B;	char ch;

/*
int MAX(int a,int b){
	return a>b? a : b;
}

int MIN(int a,int b){
	return a<b? a : b;
}

int GCD(int a,int b){
	if(b==0) return a;
	return GCD(b,b%a);
}

int funcX (int a, string b){
	for(int i=a; i<b.size(); i++){
		x=x*10+(S[i]-48);
	}
	return x;
}
*/

int main(){
	getline(A);
	getline(B);

	int IndA=0,IndB=0;

	while(A[x]=='0'){
		IndA=x+1;
		x++;
	}x=0;

	while(B[x]=='0'){
		IndB=x+1;
		x++;
	}x=0;

	A.erase(0,IndA);
	B.erase(0,IndB);

	if(A.size()<B.size()){
		cout<<"<"; return 0;
	}else if(A.size()>B.size()){
		cout<<">"; return 0;
	}

	while(x!=A.size()){
		if(A[x]>B[x]){
			cout<<">"; return 0;
		}else if(A[x]<B[x]){
			cout<<"<"; return 0;
		}
	x++;
	}

	cout<<"=";

    return 0;
}


#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <vector>
#include <cmath>
#include <stack>

using namespace std;

#define MAXN 100001
#define MINN 101
#define LL long long
#define pb push_back
#define ppb pop_back
#define getline(S) getline(cin,S)
#define vors(array)  array.begin() , array.end()
#define scanf1(x) scanf("%d", &x)
#define scanf2(x,y) scanf("%d %d", &x, &y)
#define scanf3(x,y,z) scanf("%d %d %d", &x, &,y &z)

#define for1(name,start,end) for(LL (name)=(start);(name) <= (end); ++(name))
#define for0(name,start,end) for(LL (name)=(start);(name) < (end); ++(name))

vector <int> Ai,Ay; /*vector <string> As; vector <char> Ac; */
char CH[1001][1001];

LL N,M,cnt,cnt1=-1,ind,ind1,ans=1,sum,summ,maxx,minn,mx=999999999,mn,x,y,x1,x2;

string S,A,B;	char ch;

/*
int MAX(int a,int b){
	return a>b? a : b;
}

int MIN(int a,int b){
	return a<b? a : b;
}

int GCD(int a,int b){
	if(b==0) return a;
	return GCD(b,b%a);
}

int funcX (int a, string b){
	for(int i=a; i<b.size(); i++){
		x=x*10+(S[i]-48);
	}
	return x;
}
*/

int main(){
	getline(A);
	getline(B);

	if(A[0]=='0'){
		for0(i,0,A.size()-1){
			if(A[i]=='0'){
				A.erase(i,1);
				i--;
			}else{
				break;
			}
		}
	}

	x=0;

	if(B[0]=='0'){
		for0(i,0,B.size()-1){
			if(B[i]=='0'){
				B.erase(i,1);
				i--;
			}else{
				break;
			}
		}
	}

	x=0;

	if(A.size()<B.size()){
		cout<<"<"; return 0;
	}else if(A.size()>B.size()){
		cout<<">"; return 0;
	}

	if(!A.empty() && !B.empty()){
		cout<<"="; return 0;
	}

	while(x!=A.size()){
		if(A[x]>B[x]){
			cout<<">"; return 0;
		}else if(A[x]<B[x]){
			cout<<"<"; return 0;
		}
	x++;
	}

	cout<<"=";

    return 0;
}


#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <vector>
#include <cmath>
#include <stack>

using namespace std;

#define MAXN 100001
#define MINN 101
#define LL long long
#define pb push_back
#define ppb pop_back
#define getline(S) getline(cin,S)
#define vors(array)  array.begin() , array.end()
#define scanf1(x) scanf("%d", &x)
#define scanf2(x,y) scanf("%d %d", &x, &y)
#define scanf3(x,y,z) scanf("%d %d %d", &x, &,y &z)

#define for1(name,start,end) for(LL (name)=(start);(name) <= (end); ++(name))
#define for0(name,start,end) for(LL (name)=(start);(name) < (end); ++(name))

vector <int> Ai,Ay; /*vector <string> As; vector <char> Ac; */
char CH[1001][1001];

LL N,M,cnt,cnt1=-1,ind,ind1,ans=1,sum,summ,maxx,minn,mx=999999999,mn,x,y,x1,x2;

string S,A,B;	char ch;

/*
int MAX(int a,int b){
	return a>b? a : b;
}

int MIN(int a,int b){
	return a<b? a : b;
}

int GCD(int a,int b){
	if(b==0) return a;
	return GCD(b,b%a);
}

int funcX (int a, string b){
	for(int i=a; i<b.size(); i++){
		x=x*10+(S[i]-48);
	}
	return x;
}
*/

int main(){
	getline(A);
	getline(B);

	int IndA=0,IndB=0;

	while(A[x]=='0'){
		IndA=x+1;
		x++;
	}x=0;

	while(B[x]=='0'){
		IndB=x+1;
		x++;
	}x=0;

	if(A.size()-IndA<B.size()-IndB){
		cout<<"<"; return 0;
	}else if(A.size()-IndA>B.size()-IndB){
		cout<<">"; return 0;
	}

	A.erase(0,IndA);
	B.erase(0,IndB);

	while(x!=A.size()){
		if(A[x]>B[x]){
			cout<<">"; return 0;
		}else if(A[x]<B[x]){
			cout<<"<"; return 0;
		}
	x++;
	}

	cout<<"=";

    return 0;
}


#include <bits/stdc++.h>
using namespace std;
   int main () {
    string a, b;

   cin>>a>>b;

   int s=0; int p=a.length();
   int s1=0;  int x=b.length();

    int y=b.length();

    while (b[0]=='0') {   s++;   /* a.erase(a.begin(),a.begin()+1); */  }
    while (b[0]=='0') {   s1++;   /* b.erase(b.begin(),b.begin()+1); */ }

         p=p-s; x=x-s1;  //size of strings except zeros

    if (p>x) {
        printf (">");
        return 0;
    }

    if (p<x) {
        printf ("<");
        return 0;
    }
      int saver=s1;
          if (s>s1)
  for (int k=s+1; k<=y; k++) {
    int  i=saver+1; saver++;
        if (a[k]>b[i]) {
            printf (">");
            return 0;
        }

        if (a[k]<b[i]) {
             printf ("<");
             return 0;
        }

     }
      saver=s;
        if (s<s1)
 for (int k=s1+1; k<=y; k++) {
    int  i=saver+1; saver++;
        if (a[k]>b[i]) {
            printf (">");
            return 0;
        }

        if (a[k]<b[i]) {
             printf ("<");
             return 0;
        }

     }

            if (s==s1)
     for (int k=s+1; k<=y; k++) {
        if (a[k]>b[k]) {
            printf (">");
            return 0;
        }

        if (a[k]<b[k]) {
             printf ("<");
             return 0;
        }

                                }

      printf ("=");

    return 0;

 }


#include <bits/stdc++.h>
using namespace std;
   int main () {
    string a, b;

   cin>>a>>b;

   int s=0; int p=a.length();
   int s1=0;  int x=b.length();

    int y=b.length();

    while (a[s]=='0') {   s++;   /* a.erase(a.begin(),a.begin()+1); */  }
    while (b[s1]=='0') {   s1++;   /* b.erase(b.begin(),b.begin()+1); */ }

    if (p-s>x-s1) {
        printf (">");
        return 0;
    }

    if (p-s<x-s1) {
        printf ("<");
        return 0;
    }
    //p=p-s; x=x-s1;  //size of strings except zeros
   if (p==x){

    while (a[s]==b[s1] && s<p && s1<x) { s++; s1++;}
    if (a[s]>b[s1]) { printf (">"); return 0; }
      if (a[s]<b[s1]) { printf ("<"); return 0; }
   }

       printf ("=");

     return 0;

 }


#include <bits/stdc++.h>
using namespace std;
   int main () {
    string a, b;

   cin>>a>>b;

   int s=0; int p=a.length();
   int s1=0;  int x=b.length();

    int y=b.length();

    while (b[0]=='0') {   s++;   /* a.erase(a.begin(),a.begin()+1); */  }
    while (b[0]=='0') {   s1++;   /* b.erase(b.begin(),b.begin()+1); */ }

         p=p-s; x=x-s1;  //size of strings except zeros

    if (p>x) {
        printf (">");
        return 0;
    }

    if (p<x) {
        printf ("<");
        return 0;
    }

          if (s>s1)
  for (int k=s1+1; k<=y; k++) {
    int  i=k+s;
        if (a[k]>b[i]) {
            printf (">");
            return 0;
        }

        if (a[k]<b[i]) {
             printf ("<");
             return 0;
        }

     }

        if (s<s1)
 for (int k=s+1; k<=y; k++) {
    int  i=k+s1;
        if (a[k]>b[i]) {
            printf (">");
            return 0;
        }

        if (a[k]<b[i]) {
             printf ("<");
             return 0;
        }

     }

            if (s==s1)
     for (int k=s+1; k<=y; k++) {
        if (a[k]>b[k]) {
            printf (">");
            return 0;
        }

        if (a[k]<b[k]) {
             printf ("<");
             return 0;
        }

                                }

      printf ("=");

    return 0;

 }


#include <bits/stdc++.h>
using namespace std;
   int main () {
    int s, s1;
    string a, b;

   cin>>a>>b;

    s=a.length();
   s1=b.length();

   while (a[0]=='0') {
    s--;
        a.erase(a.begin(),a.begin()+1);
   }

    while (b[0]=='0') {
    s1--;
        b.erase(b.begin(),b.begin()+1);
   }

    // cout<<s<<endl<<s1;

    if (s>s1) {
        printf (">");
        return 0;
    }

    if (s<s1) {
        printf ("<");
        return 0;
    }

  for (int k=0; k<=s; k++) {
        if (a[k]>b[k]) {
            printf (">");
            return 0;
        }

        if (a[k]<b[k]) {
             printf ("<");
             return 0;
        }

     }

      printf ("=");
    return 0;
   }


#include <bits/stdc++.h>
using namespace std;
   int main () {
    string a, b;

   cin>>a>>b;

   int s=0; int p=a.length();
   int s1=0;  int x=b.length();

    int y=b.length();

    while (a[s]=='0') {   s++;   /* a.erase(a.begin(),a.begin()+1); */  }
    while (b[s1]=='0') {   s1++;   /* b.erase(b.begin(),b.begin()+1); */ }

    if (p-s>x-s1) {
        printf (">");
        return 0;
    }

    if (p-s<x-s1) {
        printf ("<");
        return 0;
    }
    //p=p-s; x=x-s1;  //size of strings except zeros
   if (p-s==x-s1) {

    while (a[s]==b[s1] && s<p && s1<x) { s++; s1++;}
    if (a[s]>b[s1]) { printf (">"); return 0; }
      if (a[s]<b[s1]) { printf ("<"); return 0; }

    }

       printf ("=");

     return 0;

 }


#include <bits/stdc++.h>
using namespace std;
   int main () {
    string a, b;

   cin>>a>>b;

   int s=0; int p=a.length();
   int s1=0;  int x=b.length();

    int y=b.length();

    while (a[s]=='0') {   s++;   /* a.erase(a.begin(),a.begin()+1); */  }
    while (b[s1]=='0') {   s1++;   /* b.erase(b.begin(),b.begin()+1); */ }

         p=p-s; x=x-s1;  //size of strings except zeros

    if (p>x) {
        printf (">");
        return 0;
    }

    if (p<x) {
        printf ("<");
        return 0;
    }

          if (s>s1)
  for (int k=s1+1; k<=y; k++) {
    int  i=k+s;
        if (a[k]>b[i]) {
            printf (">");
            return 0;
        }

        if (a[k]<b[i]) {
             printf ("<");
             return 0;
        }

     }

        if (s<s1)
 for (int k=s+1; k<=y; k++) {
    int  i=k+s1;
        if (a[k]>b[i]) {
            printf (">");
            return 0;
        }

        if (a[k]<b[i]) {
             printf ("<");
             return 0;
        }

     }

            if (s==s1)
     for (int k=s+1; k<=y; k++) {
        if (a[k]>b[k]) {
            printf (">");
            return 0;
        }

        if (a[k]<b[k]) {
             printf ("<");
             return 0;
        }

                                }

      printf ("=");

    return 0;

 }


#include <bits/stdc++.h>
using namespace std;
   int main () {
    int s, s1;
    string a, b;

  scanf("%s%s",a,b);
 // cin>>a>>b;
    s=a.length();
   s1=b.length();

   while (a[0]=='0') {
    s--;
        a.erase(a.begin(),a.begin()+1);
   }

    while (b[0]=='0') {
    s1--;
        b.erase(b.begin(),b.begin()+1);
   }

    // cout<<s<<endl<<s1;

    if (s>s1) {
        printf (">");
        return 0;
    }

    if (s<s1) {
        printf ("<");
        return 0;
    }

  for (int k=0; k<=s; k++) {
        if (a[k]>b[k]) {
            printf (">");
            return 0;
        }

        if (a[k]<b[k]) {
             printf ("<");
             return 0;
        }

     }

      printf ("=");
    return 0;
   }


#include <bits/stdc++.h>
using namespace std;
   int main () {
    string a, b;

   cin>>a>>b;

   int s=0; int p=a.length();
   int s1=0;  int x=b.length();

    int y=b.length();

    while (b[0]=='0') {   s++;   /* a.erase(a.begin(),a.begin()+1); */  }
    while (b[0]=='0') {   s1++;   /* b.erase(b.begin(),b.begin()+1); */ }

    if (p-s>x-s1) {
        printf (">");
        return 0;
    }

    if (p-s<x-s1) {
        printf ("<");
        return 0;
    }
    //p=p-s; x=x-s1;  //size of strings except zeros
   if (p==x){

    while (a[s]==b[s1] && s<p && s1<x) { s++; s1++;}
    if (a[s]>b[s1]) { printf (">"); return 0; }
      if (a[s]<b[s1]) { printf ("<"); return 0; }
   }

       printf ("=");

     return 0;

 }


#include <stdio.h>
int main()
{
    double a,b;
    while(~scanf("%lf %lf",&a,&b))
    {
        if(a>b) printf(">\n");
        if(a<b) printf("<\n");
        if(a==b) printf("=\n");
    }
    return 0;
}


#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <queue>
#include <algorithm>

using namespace std;

char s[1000010], a[1000010];
int sum[1000010];

int main()
{
    while (~scanf("%s %s", s, a))
    {
        memset(sum, 0, sizeof(sum));
        while (s[0] == '0')
        {
            for (int i = 0; i < strlen(s); i++)
                s[i] = s[i + 1];
        }
        while (a[0] == '0')
        {
            for (int i = 0; i < strlen(a); i++)
                a[i] = a[i + 1];
        }
        int l1 = strlen(s), l2 = strlen(a);
        if (l1 == l2)
        {
            int k = strcmp(s, a);
            if (k == 0)
                printf("=\n");
            else
            {
                int i = 0, j = 0;
                while (i < l1 && j < l2)
                {
                    if (s[i] == a[j])
                    {
                        i++;
                        j++;
                    }
                    else if (s[i] > a[j])
                    {
                        printf(">\n");
                        break;
                    }
                    else if (s[i] < a[j])
                    {
                        printf("<\n");
                        break;
                    }
                }
            }
        }
        else if (l1 > l2)
            printf(">\n");
        else if (l1 < l2)
            printf("<\n");
    }
    return 0;
}


#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
char a[1000007], b[1000007];
int judge(int p, int q)
{
    if(p == -1 && q == -1) return 0;
    int len1 = strlen(a) - p, len2 = strlen(b) - q;
    if(len1 > len2) return 1;
    else if(len2 > len1) return -1;
    else return strcmp(a + p, b + q);
}
int main()
{
    scanf("%s", a);
    scanf("%s", b);
    int s1 = -1, s2 = -1;
    for(int i = 0; a[i] != '\0'; i ++)
        if(a[i] != '0')
        {
            s1 = i;
            break;
        }
    for(int i = 0; b[i] != '\0'; i ++)
        if(b[i] != '0')
        {
            s2 = i;
            break;
        }
    int k = judge(s1, s2);
    if(k > 0) printf(">\n");
    else if(k < 0) printf("<\n");
    else printf("=\n");
    return 0;
}


#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>
using namespace std;
char a[1123456],b[123456];

int main()
{
    while(~scanf("%s%s",&a,&b))
    {
        int top1=0,top2=0,len1=strlen(a),len2=strlen(b);
        while(a[top1]=='0') top1++;
        while(b[top2]=='0') top2++;
        if(len1-top1>len2-top2) cout<<">"<<endl;
        else if(len1-top1<len2-top2) cout<<"<"<<endl;
        else
        {
            int flag=1;
            for(int i=top1;i<len1;i++)
            {
               // cout<<a[top1]<<" "<<b[top2]<<endl;
                if(a[top1]>b[top2])
                {
                    flag=0;
                    cout<<">"<<endl;
                    break;
                }
                else if(a[top1]<b[top2])
                {
                    flag=0;
                    cout<<"<"<<endl;
                    break;
                }
                top1++;
                top2++;
            }
            if(flag) cout<<"="<<endl;
        }
    }
    return 0;
}


#include <iostream>
#include <string>
using namespace std;

void ss(string a, string b)
{
    if(a == b)
        cout<<'='<<endl;
    else if(a < b)
        cout<<'<'<<endl;
    else
        cout<<'>'<<endl;
}

int main()
{
    ios::sync_with_stdio(false);
    string a, b;
    while(cin>>a>>b)
    {
        int i = 0,j = 0;
        while(a[i] == '0')
            i++;
        while(b[j] == '0')
            j++;
        int l1 = a.length(), l2 = b.length();
        if(l1-i < l2 - j)
        cout<<'<'<<endl;
        else if(l1-i > l2-j)
        cout<<'>'<<endl;
        else
        {
            a.erase(0,i);
            b.erase(0,j);
           // cout<<a<<endl<<b<<endl;
            ss(a,b);
        }
    }
    return 0;
}


#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
using namespace std;

char n[1000012], m[1000012];

int main()
{
    gets(n);
    gets(m);
    int i = 0;
    int len1 = strlen(n);
    while ( n[i] == '0'&&i != len1-1 )
    {
        i++;
    }
    len1 = strlen(n)-i;
    int j = 0;
    int len2 = strlen(m);
    while ( m[j] == '0'&&j != len2-1  )
    {
        j++;
    }
    len2 = strlen(m)-j;
    if ( len1 > len2 )
    {
        printf ( ">\n" );
    }
    else if (len1 < len2)
    {
        printf ( "<\n");
    }
    else
    {
        while ( n[i] == m[j]&&i != strlen(n)-1 )
        {
            i++;
            j++;
        }
        if ( n[i] > m[j] )
        {
            printf ( ">\n" );
        }
        else if ( n[i] < m[j] )
        {
            printf ( "<\n");
        }
        else
            printf ( "=\n" );
    }
    return 0;
}


#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std;

int main()
{
   char str1[10000],str2[10000];

   int L1,L2,i,j;
   while(~scanf("%s\n",str1))
   {
       i=j=0;
       scanf("%s",str2);
       L1=strlen(str1);
       L2=strlen(str2);
       for(i=0;i<L1;i++)
       {
           if(str1[i]!='0')
            break;
       }
       for(j=0;j<L2;j++)
       {
           if(str2[j]!='0')
            break;
       }
//       printf("%d %d\n",L1-i,L2-j);
       if((L1-i)>(L2-j))
            printf(">\n");
       else if((L1-i)<(L2-j))
            printf("<\n");
       else
       {
           while(i<L1&&j<L2)
           {
               if(str1[i]>str2[j])
               {
                   printf(">\n");
                   break;
               }
               if(str1[i]<str2[j])
               {
                   printf("<\n");
                   break;
               }
               if(str1[i]==str2[j])
               {
                   i++;
                   j++;
               }
           }
           if(i==L1&&j==L2)
            printf("=\n");
       }
   }
    return 0;
}


#include<stdio.h>
#include<string.h>
char a[100],b[100];
long long int n,m;
int main()
{
    int len1,len2;
    scanf("%s %s",a,b);
        int i,j,k,t;
        int e;
        n = m = 0;
        len1 = strlen(a);
        len2 = strlen(b);
        for(i = 0;i < len1;i++)
        {
            if(a[i] != '0')
                break;
        }
        t = 1;
        for(k = len1-1;k >= i;k--)
        {
            e = a[k] - '0';
            n += e*t;
            t = t*10;
        }
        for(j = 0;j < len2;j++)
        {
            if(b[j] != '0')
                break;
        }
        t = 1;
        for(k = len2-1;k >= j;k--)
        {
            e = b[k] - '0';
            m += e*t;
            t = t*10;
        }
        if(n > m)
            printf(">\n");
        else if(n < m)
            printf("<\n");
        else
            printf("=\n");
    return 0;
}


#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <cstdlib>
#include <algorithm>
using namespace std;
char a[1001000], b[1001000];
int main()
{
    scanf("%s", a);
    scanf("%s", b);
    int l1 = strlen(a);
    int l2 = strlen(b);
    int s=0, t=0;
    for(int i = 0; i < l1; i++)
    {
        if(a[i] != 0)
        {
            for(int j = i; j < l1; j++)
            {
                s = a[j]-48+s*10;
            }
            break;
        }
    }
    for(int i = 0; i < l2; i++)
    {
        if(b[i] != 0)
        {
            for(int j = i; j < l2; j++)
            {
                t = b[j]-48+t*10;
            }
            break;
        }
    }
    if(s > t)
        printf(">\n");
    else if(s < t)
        printf("<\n");
    else
        printf("=\n");
    return 0;
}


#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a,b;
    scanf("%d%d",&a,&b);
    if(a>b)
        printf(">\n");
    else if(a==b)
        printf("=\n");
    else
        printf("<\n");
    return 0;
}


#include <iostream>
#include <cstring>
using namespace std;
char a[100], b[100];
int main()
{
    cin >> a;
    cin >> b;
    int p = 0, q = 0;
    for(int i = 0; a[i] != '\0'; i ++)
        p = p * 10 + (a[i] - '0');
    for(int i = 0; b[i] != '\0'; i ++)
        q = q * 10 + (b[i] - '0');
    if(p == q) cout << "=" << endl;
    else if(p > q) cout << ">" << endl;
    else cout << "<" << endl;
    return 0;
}


#include<stdio.h>
#include<math.h>
#include<string.h>
#define mod 10000007
char a[1000005],b[1000005];
int main()
{
    long long x,y;
    int i,j;
   while(~scanf("%s",a))
   {

       scanf("%s",b);
       int len = strlen(a);
       int len1= strlen(b);
       int count = 0,count1=0;
      for(i=0;i<len;i++)
      {
          if(a[i]!='0')
            break;
      }
      count=i;
      for(i=0;i<len;i++)
      {
          if(b[i]!='0')
            break;
      }
      count1 = i;
      if(len - count >len1-count1)
      {
          printf(">\n");
      }
      else if(len - count <len1-count1)
      {
          printf("<\n");
      }
      else
      {
          for(i=count,j=count1;i<len;i++,j++)
          {
              if(a[i]-'0'>b[j]-'0')
              {
                  printf(">\n");break;
              }
              else if((a[i]-'0'<b[j]-'0'))
              {
                  printf("<\n");break;
              }
          }
          if(i==len1)
          {
              printf("=\n");
          }
      }

   }
   return 0;
}


#include <iostream>
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <queue>
#include <vector>
#include <algorithm>
using namespace std;
char s1[1000010], s2[1000010];
int main()
{
   scanf("%s%s", s1, s2);
   int l1 = strlen(s1), l2 = strlen(s2), a, b;
   int flag = 3;
   int ii = 0, jj = 0;
   while(s1[ii]=='0')++ii;
   while(s2[jj]=='0')++jj;
   if(l1-ii<l2-jj)flag = 1;
   else if(l1-ii>l2-jj)flag = 2;
   else
   {
       for(  ;ii<l1;  )
       {
           a = s1[ii]-'0';
           b = s2[jj]-'0';
           if(a!=b)
           {
               if(a<b)flag = 1;
               else flag = 2;
               break;
           }
           ++ii;
           ++jj;
       }
   }
   if(flag==1)printf("<\n");
   else if(flag==2)printf(">\n");
   else printf("=\n");
    return 0;
}


#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std;

int main()
{
   char s1[100000],s2[100000];

   int L1,L2,i,j;
   while(~scanf("%s",s1))
   {
       i=j=0;
       scanf("%s",s2);
       L1=strlen(s1);
       L2=strlen(s2);
       for(i=0;i<L1;i++)
       {
           if(s1[i]!='0')
            break;
       }
       for(j=0;j<L2;j++)
       {
           if(s2[j]!='0')
            break;
       }
       if((L1-i)>(L2-j))
            printf(">\n");
       else if((L1-i)<(L2-j))
            printf("<\n");
       else
       {
           while(i<L1&&j<L2)
           {
               if(s1[i]>s2[j])
               {
                   printf(">\n");
                   break;
               }
               else if(s1[i]<s2[j])
               {
                   printf("<\n");
                   break;
               }
              else if(s1[i]==s2[j])
               {
                   i++;
                   j++;
               }
           }
           if(i==L1&&j==L2)
            printf("=\n");
       }
   }
    return 0;
}


#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>

using namespace std;
char a[2000000];
char b[2000000];

queue<int>aa,bb;

int main()
{
    while(cin>>a>>b)
    {
        while(!aa.empty())aa.pop();
        while(!bb.empty())bb.pop();
        int lena=strlen(a);
        int lenb=strlen(b);
        for(int i=0;i<lena;i++)
        {
            aa.push(a[i]-'0');
            if(aa.front()==0)aa.pop();
        }
        for(int i=0;i<lenb;i++)
        {
            bb.push(b[i]-'0');
            if(bb.front()==0)bb.pop();
        }
        if(aa.size()==0&&bb.size()==0)
        {
            cout<<"=\n";
            continue;
        }
        if(aa.size()>bb.size())
        {
            cout<<">\n";
            continue;
        }
        if(aa.size()<bb.size())
        {
            cout<<"<\n";
            continue;
        }
        if(aa.size()==bb.size())
        {
            int x,y;
            int f=1;
            while(!aa.empty())
            {
                x=aa.front();
                y=bb.front();
                aa.pop();
                bb.pop();
                if(x>y)
                {
                    cout<<">\n";
                    f=0;
                    break;
                }
                else if(x<y)
                {
                    cout<<"<\n";
                    f=0;
                    break;
                }
            }
            if(f==1)cout<<"=\n";
        }
    }
    return 0;
}


#include<stdio.h>
int main()
{
    long long a,b;
    scanf("%lld",&a);
    scanf("%lld",&b);
    if(a>b)
        printf(">\n");
    else if(a<b)
        printf("<\n");
    else
        printf("=\n");
    return 0;
}


#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
char a[1000007], b[1000007];
int judge(int p, int q)
{
    if(p == -1 && q == -1) return 0;
    else if(p == -1) return -1;
    else if(q == -1) return 1;
    int len1 = strlen(a) - p, len2 = strlen(b) - q;
    if(len1 > len2) return 1;
    else if(len2 > len1) return -1;
    else return strcmp(a + p, b + q);
}
int main()
{
    scanf("%s", a);
    scanf("%s", b);
    int s1 = -1, s2 = -1;
    for(int i = 0; a[i] != '\0'; i ++)
        if(a[i] != '0')
        {
            s1 = i;
            break;
        }
    for(int i = 0; b[i] != '\0'; i ++)
        if(b[i] != '0')
        {
            s2 = i;
            break;
        }
    int k = judge(s1, s2);
    if(k > 0) printf(">\n");
    else if(k < 0) printf("<\n");
    else printf("=\n");
    return 0;
}


#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<queue>
#include<iostream>
#define Max 1000006
using namespace std;

char a[Max],b[Max];

int main()
{
    int i,j,k;
    while(~scanf("%s%s",a,b))
    {
        i=0;
        while(a[i]=='0')
            i++;
        for(j=i,k=0; a[j]!='\0'; j++,k++)
            a[k]=a[j];
        a[k++]='\0';
        i=0;
        while(b[i]=='0')
            i++;
        for(j=i,k=0; b[j]!='\0'; j++,k++)
            b[k]=b[j];
        b[k++]='\0';
        if(strlen(a)<strlen(b))
            printf("<\n");
        else if(strlen(a)>strlen(b))
            printf(">\n");
        else
        {
            if(strcmp(a,b)>0)
                printf(">\n");
            else if(strcmp(a,b)<0)
                printf("<\n");
            else if(strcmp(a,b)==0)
                printf("=\n");
        }
    }
}


#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>

using namespace std;

char a[1000006];
char b[1000006];

int main()
{
    int top,t;
    while(cin>>a>>b)
    {
        if(strcmp(a,b)==0)
        {
            cout<<"=\n";
            continue;
        }
        int lena=strlen(a);
        int lenb=strlen(b);
        int x,y;
        x=y=0;
        for(int i=0; i<=max(lena,lenb); i++)
        {
            if(a[i]!='0'&&x==0)
            {
                t=i;
                x=1;
            }
            if(b[i]!='0'&&y==0)
            {
                top=i;
                y=1;
            }
        }
        //cout<<t<<" "<<top<<endl;
        lena=lena-t;
        lenb=lenb-top;
        if(lena==0)
        {
            if(lenb!=0)cout<<"<\n";
            else cout<<"=\n";
            continue;
        }
        if(lenb==0)
        {
            if(lena!=0)cout<<">\n";
            else cout<<"=\n";
            continue;
        }
        if(lena<lenb)
        {
            cout<<"<\n";
        }
        else if(lena>lenb)
        {
            cout<<">\n";
        }
        else
        {
            int f=0;
            for(int i=t,j=top; i<lena&&j<lenb; i++,j++)
            {
                if(a[i]>b[j])
                {
                    cout<<">\n";
                    f=1;
                    break;
                }
                if(a[i]<b[j])
                {
                    cout<<"<\n";
                    f=1;
                    break;
                }
            }
            if(f==0)cout<<"=\n";
        }
    }
    return 0;
}


#include<stdio.h>
#include<string.h>
char a[20],b[20];
long long int n,m;
int main()
{
    int len1,len2;
    while(~scanf("%s %s",a,b))
    {
        int i,j,k,t;
        long long int e;
        n = m = 0;
        len1 = strlen(a);
        len2 = strlen(b);
        for(i = 0;i < len1;i++)
        {
            if(a[i] != '0')
                break;
        }
        t = 1;
        for(k = len1-1;k >= i;k--)
        {
            e = a[k] - '0';
            n += e*t;
            t = t*10;
        }
        for(j = 0;j < len2;j++)
        {
            if(b[j] != '0')
                break;
        }
        t = 1;
        for(k = len2-1;k >= j;k--)
        {
            e = b[k] - '0';
            m += e*t;
            t = t*10;
        }
        if(n > m)
            printf(">\n");
        else if(n < m)
            printf("<\n");
        else if(n == m)
            printf("=\n");
    }
    return 0;
}


#include<stdio.h>
#include<string.h>
int main()
{
    int i,n,m,flag=1;
    char a[200],b[200],*ap,*bp;
    scanf("%s",a);
    scanf("%s",b);
    n=strlen(a);
    m=strlen(b);
    ap=a;
    bp=b;
    for(i=0;i<n;i++)
    {
        if(*ap=='0')
            ap++;
        else
            break;
    }
    n=n-i;
    for(i=0;i<m;i++)
    {
        if(*bp=='0')
            bp++;
        else
            break;
    }
    m=m-i;
    if(n>m)
        printf(">\n");
    else if(n<m)
        printf("<\n");
    else
    {
        while((*ap)!='\0'&&(*bp)!='\0')
        {
            if((*ap)>(*bp))
            {
                printf(">\n");
                return 0;
            }
            else if((*ap)<(*bp))
            {
                printf("<\n");
                return 0;
            }
            else
            {
                ap++;
                bp++;
            }
        }
        printf("=\n");
    }
    return 0;
}


#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <queue>
#include <algorithm>

using namespace std;

char a[1000010], b[1000010];

int main()
{
    while (~scanf("%s %s", a, b))
    {
        while (a[0] == '0')
            for (int i = 0; i < strlen(a); i++)
                a[i] = a[i + 1];
        while (b[0] == '0')
            for (int i = 0; i < strlen(b); i++)
                b[i] = b[i + 1];
        int l1 = strlen(a), l2 = strlen(b);
        if (l1 > l2)
            printf(">\n");
        else if (l1 < l2)
            printf("<\n");
        else
        {
            if (strcmp(a, b) == 0)
                printf("=\n");
            else
            {
                for (int i = 0; i < strlen(a); i++)
                {
                    if (a[i] > b[i])
                    {
                        printf(">\n");
                        break;
                    }
                    else if (a[i] < b[i])
                    {
                        printf("<\n");
                        break;
                    }
                }
            }
        }
    }
    return 0;
}


#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std;

int main()
{
   char str1[1000000000],str2[1000000000];

   int L1,L2,i,j;
   while(~scanf("%s",str1))
   {
       i=j=0;
       scanf("%s",str2);
       L1=strlen(str1);
       L2=strlen(str2);
       for(i=0;i<L1;i++)
       {
           if(str1[i]!='0')
            break;
       }
       for(j=0;j<L2;j++)
       {
           if(str2[j]!='0')
            break;
       }
       if((L1-i)>(L2-j))
            printf(">\n");
       else if((L1-i)<(L2-j))
            printf("<\n");
       else
       {
           while(i<L1&&j<L2)
           {
               if(str1[i]>str2[j])
               {
                   printf(">\n");
                   break;
               }
               if(str1[i]<str2[j])
               {
                   printf("<\n");
                   break;
               }
               if(str1[i]==str2[j])
               {
                   i++;
                   j++;
               }
           }
           if(i==L1&&j==L2)
            printf("=\n");
       }
   }
    return 0;
}


#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
char a[1000007], b[1000007];
int judge(int p, int q)
{
    if(p == -1 && q == -1) return 0;
    int len1 = strlen(a) - p - 1, len2 = strlen(b) - q - 1;
    if(len1 > len2) return 1;
    else if(len2 > len1) return -1;
    else
    {
        while(a[p] != '\0')
        {
            if(a[p] != b[q])
            {
                if(a[p] > b[q]) return 1;
                else return -1;
            }
            p ++;
            q ++;
        }
    }
    return 0;
}
int main()
{
    scanf("%s", a);
    scanf("%s", b);
    int s1 = -1, s2 = -1;
    for(int i = 0; a[i] != '\0'; i ++)
        if(a[i] != '0')
        {
            s1 = i;
            break;
        }
    for(int i = 0; b[i] != '\0'; i ++)
        if(b[i] != '0')
        {
            s2 = i;
            break;
        }
    int k = judge(s1, s2);
    if(k == 1) cout << ">" << endl;
    else if(k == -1) cout << "<" << endl;
    else cout << "=" << endl;
    return 0;
}


#include<bits/stdc++.h>
using namespace std;

int a,b;
int main()
{

   scanf("%d",&a);
   scanf("%d",&b);
   if(a<b)
   {
       printf("<\n");
   }
   if(a>b)
   {
       printf(">\n");
   }
   if(a==b)
   {
       printf("=\n");
   }
   return 0;

}


#include <stdio.h>
int main()
{
    long long a,b;
    while(~scanf("%lld %lld",&a,&b))
    {
        if(a>b) printf(">\n");
        if(a<b) printf("<\n");
        if(a==b) printf("=\n");
    }
    return 0;
}


#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
char a[1000007], b[1000007];
int judge(int p, int q)
{
    int len1 = strlen(a) - p - 1, len2 = strlen(b) - q - 1;
    if(len1 > len2) return 1;
    else if(len2 > len1) return -1;
    else
    {
        while(a[p] != '\0')
        {
            if(a[p] != b[q])
            {
                if(a[p] > b[q]) return 1;
                else return -1;
            }
            p ++;
            q ++;
        }
    }
    return 0;
}
int main()
{
    scanf("%s", a);
    scanf("%s", b);
    int s1, s2;
    for(int i = 0; a[i] != '\0'; i ++)
        if(a[i] != '0')
        {
            s1 = i;
            break;
        }
    for(int i = 0; b[i] != '\0'; i ++)
        if(b[i] != '0')
        {
            s2 = i;
            break;
        }
    int k = judge(s1, s2);
    if(k == 1) cout << ">" << endl;
    else if(k == -1) cout << "<" << endl;
    else cout << "=" << endl;
    return 0;
}


#include<stdio.h>
#include<string.h>
char a[100],b[100];
long long int n,m;
int main()
{
    int len1,len2;
    while(~scanf("%s %s",a,b))
    {
        int i,j,k,t;
        int e;
        n = m = 0;
        len1 = strlen(a);
        len2 = strlen(b);
        for(i = 0;i < len1;i++)
        {
            if(a[i] != '0')
                break;
        }
        t = 1;
        for(k = len1-1;k >= i;k--)
        {
            e = a[k] - '0';
            n += e*t;
            t = t*10;
        }
        for(j = 0;j < len2;j++)
        {
            if(b[j] != '0')
                break;
        }
        t = 1;
        for(k = len2-1;k >= j;k--)
        {
            e = b[k] - '0';
            m += e*t;
            t = t*10;
        }
        if(n > m)
            printf(">\n");
        else if(n < m)
            printf("<\n");
        else
            printf("=\n");
    }
    return 0;
}


#include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<cmath>
#include<queue>
using namespace std;
char a[1123456],b[123456];

int main()
{
        scanf("%s%s",&a,&b);
        long long int top1=0,top2=0,len1=strlen(a),len2=strlen(b),dian1,dian2;
        while(a[top1]=='0')
        {
            if(a[top1]=='.'||top1>=len1) break;
            top1++;
        }
        while(b[top2]=='0')
        {
            if(b[top2]=='.'||top2>=len2) break;
            top2++;
        }
        dian1=top1;
        dian2=top2;
        while(a[dian1]!='.')
        {
            if(dian1==len1) break;
            dian1++;
        }
        while(b[dian2]!='.')
        {
            if(dian2==len2) break;
            dian2++;
        }
     //   cout<<dian1<<" "<<top1<<" "<<dian2<<" "<<top2<<endl;
        if(dian1-top1>dian2-top2) printf(">\n");
        else if(dian1-top1<dian2-top2) printf("<\n");
      //  if(len1-top1>len2-top2) printf(">\n");
       // else if(len1-top1<len2-top2) printf("<\n");
         //   cout<<top1<<" "<<len1<<" "<<top2<<" "<<len2<<endl;
         else
         {
           //  cout<<"111"<<endl;
             int flag=1;
              while(top1<dian1&&top2<dian2)
            {
               // cout<<a[top1]<<" "<<b[top2]<<endl;

            //    else if(a[top1]=='.'&&b[top2]=='.') continue;
                 if(a[top1]>b[top2])
                {
                    flag=0;
                    printf(">\n");
                    break;
                }
                else if(a[top1]<b[top2])
                {
                    flag=0;
                    printf("<\n");
                    break;
                }
                top1++;
                top2++;
            }
            if(flag)
            {
                top1++;
                top2++;
                 while(top1<len1&&top2<len2)
                {
               // cout<<a[top1]<<" "<<b[top2]<<endl;

            //    else if(a[top1]=='.'&&b[top2]=='.') continue;
                     if(a[top1]>b[top2])
                    {
                        flag=0;
                        printf(">\n");
                        break;
                    }
                    else if(a[top1]<b[top2])
                    {
                        flag=0;
                        printf("<\n");
                        break;
                    }
                    top1++;
                    top2++;
                }
            }
            if(flag)
            {

                if(top1==len1&&top2<len2)
                {
                    int ff=0;
                    while(top2<len2)
                    {
                        if(b[top2]!='0') ff=1;
                        top2++;
                    }
                    if(ff) printf("<\n");
                    else printf("=\n");
                }
                else if(top1<len1&&top2==len2)
                {
                    int ff=0;
                    while(top1<len1)
                    {
                        if(a[top1]!='0') ff=1;
                        top1++;
                    }
                    if(ff) printf(">\n");
                    else printf("=\n");
                }
                else printf("=\n");
            }
         }

    return 0;
}


#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std;

int main()
{
   char str1[10000000],str2[10000000];

   int L1,L2,i,j;
   while(~scanf("%s",str1))
   {
       i=j=0;
       scanf("%s",str2);
       L1=strlen(str1);
       L2=strlen(str2);
       for(i=0;i<L1;i++)
       {
           if(str1[i]!='0')
            break;
       }
       for(j=0;j<L2;j++)
       {
           if(str2[j]!='0')
            break;
       }
       if((L1-i)>(L2-j))
            printf(">\n");
       else if((L1-i)<(L2-j))
            printf("<\n");
       else
       {
           while(i<L1&&j<L2)
           {
               if(str1[i]>str2[j])
               {
                   printf(">\n");
                   break;
               }
               if(str1[i]<str2[j])
               {
                   printf("<\n");
                   break;
               }
               if(str1[i]==str2[j])
               {
                   i++;
                   j++;
               }
           }
           if(i==L1&&j==L2)
            printf("=\n");
       }
   }
    return 0;
}


#include<stdio.h>
#include<string.h>
#define N 1000005
char a[N],b[N];
int n,m;
int main()
{
    int l1,l2;
    while(~scanf("%s %s",a,b))
    {
        int i,j,p,q;
        n = m = 0;
        int e;
        int k = 1,l = 1;
        l1 = strlen(a);
        l2 = strlen(b);
        for(i = 0;i < l1;i++)
        {
            if(a[i] != '0')
                break;
        }
        for(p = l1-1;p >= i;p--)
        {
             e = a[p] - '0';
             n += e*k;
             k = k*10;
        }
        for(j = 0;j < l2;j++)
        {
            if(b[j] != '0')
                break;
        }
        for(q = l2-1;q >= j;q--)
        {
            e = b[q] - '0';
            m += e*l;
            l = l*10;
        }
        if(n > m)
        {
            printf(">\n");
        }
        else if(n < m)
        {
            printf("<\n");
        }
        else if(n == m)
        {
            printf("=\n");
        }
    }
    return 0;
}


#include<stdio.h>
#include<math.h>
#include<string.h>
#define mod 10000007
char a[1000005],b[1000005];
int main()
{
    long long x,y;
    int i;
   while(~scanf("%s",a))
   {
       x = 0;
       y = 0;
       scanf("%s",b);
       int len = strlen(a);
       int len1= strlen(b);
       for(i=0;i<len;i++)
       {
            x = (x*10+(a[i]-'0'))%mod;
       }

       for(i=0;i<len1;i++)
       {
            y = (y*10+(b[i]-'0'))%mod;
       }

       if(x>y)
       {
           printf(">\n");
       }
       else if(x<y)
       {
           printf("<\n");
       }
       else
        printf("=\n");
   }
   return 0;
}


#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
char s1[3000000];
char s2[3000000];
int main()
{
    scanf("%s",s1);
    scanf("%s",s2);
    int k1,k2;
    int i,j;
    for(i=0;s1[i]!='\0';i++)
    {
        if(s1[i]!='0')
        {
            k1=i;
            break;
        }
    }
    for(i=0;s2[i]!='\0';i++)
    {
        if(s2[i]!='0')
        {
            k2=i;
            break;
        }
    }
    int len1=strlen(s1);
    int len2=strlen(s2);
    if(len1-k1>len2-k2)
    {
        printf(">\n");
    }
    else if(len1-k1<len2-k2)
    {
        printf("<\n");
    }
    else
    {
        for(i=k1,j=k2;s1[i]!='\0';i++,j++)
        {
            if(s1[i]>s2[j])
            {
                printf(">\n");
                break;
            }
            else if(s1[i]<s2[j])
            {
                printf("<\n");
                break;
            }
        }
        if(i==len1)
            printf("=\n");
    }
    return 0;
}


#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <queue>
#include <algorithm>

using namespace std;

char a[1000010], b[1000010];

int main()
{
    while (~scanf("%s %s", a, b))
    {
        int x = 0, y = 0;
        while (a[x] == '0')
            x++;
        while (b[y] == '0')
            y++;
        int l1 = strlen(a), l2 = strlen(b);
        if (l1 - x > l2 - y)
            printf(">\n");
        else if (l1 - x < l2 - y)
            printf("<\n");
        else if (l1 - x == l2 - y)
        {
            while (x < l1)
            {
                if (a[x] == b[y])
                {
                    x++;
                    y++;
                }
                else if (a[x] > b[y])
                {
                    printf(">\n");
                    break;
                }
                else if (a[x] < b[y])
                {
                    printf("<\n");
                    break;
                }
            }
            if (x == l1)
                printf("=\n");
        }
    }
    return 0;
}


#include<bits/stdc++.h>
using namespace std;

long long  a;
long long b;
int main()
{

   scanf("%lld",&a);
   scanf("%lld",&b);
   if(a<b)
   {
       printf("<\n");
   }
   if(a>b)
   {
       printf(">\n");
   }
   if(a==b)
   {
       printf("=\n");
   }
   return 0;

}


#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
using namespace std;

int main()
{
    char n[1000005], m[1000005];
    scanf ( "%s", n );
    scanf ( "%s", m );
    int i = 0;
    int len1 = strlen(n);
    while ( n[i] == '0'&&i != len1 )
    {
        i++;
    }
    len1 = strlen(n)-i;
    int j = 0;
    int len2 = strlen(m);
    while ( m[j] == '0'&&j != len2  )
    {
        j++;
    }
    len2 = strlen(m)-j;
    if ( len1 > len2 )
    {
        printf ( ">\n" );
    }
    else if (len1 < len2)
    {
        printf ( "<\n");
    }
    else
    {
        int ok = 0;
        if ( len1 == 0 )
        {
            printf ( "=\n" );
            return 0;
        }
        while ( n[i] == m[j] )
        {
            i++;
            j++;
            if ( i == strlen(n)-1 )
                break;
        }
        if ( n[i] > m[j] )
        {
            printf ( ">\n" );
        }
        else if (n[i] < m[j])
        {
            printf ( "<\n");
        }
        else
            printf ( "=\n" );
    }
    return 0;
}


#include<stdio.h>
#include<math.h>
#include<string.h>
#define mod 10000007
char a[1000005],b[1000005];
int main()
{
    long long x,y;
    int i,j;
   while(~scanf("%s",a))
   {

       scanf("%s",b);
       int len = strlen(a);
       int len1= strlen(b);
       int count = 0,count1=0;
      for(i=0;i<len;i++)
      {
          if(a[i]!='0')
            break;
      }
      count=i;
      for(i=0;i<len;i++)
      {
          if(b[i]!='0')
            break;
      }
      count1 = i;
      if(len - count >len1-count1)
      {
          printf(">\n");
      }
      else if(len - count <len1-count1)
      {
          printf("<\n");
      }
      else
      {
          for(i=count,j=count1;i<len;i++,j++)
          {
              if(a[i]-'0'>b[j]-'0')
              {
                  printf(">");break;
              }
              else if((a[i]-'0'<b[j]-'0'))
              {
                  printf("<");break;
              }
          }
          if(i==len1)
          {
              printf("=\n");
          }
      }

   }
   return 0;
}


#include<stdio.h>
#include<string.h>
int main()
{
    int i,n,m;
    char a[2000],b[2000],*ap,*bp;
    scanf("%s",a);
    scanf("%s",b);
    n=strlen(a);
    m=strlen(b);
    ap=a;
    bp=b;
    for(i=0;i<n;i++)
    {
        if(*ap=='0')
            ap++;
        else
            break;
    }
    n=n-i;
    for(i=0;i<m;i++)
    {
        if(*bp=='0')
            bp++;
        else
            break;
    }
    m=m-i;
    if(n>m)
        printf(">\n");
    else if(n<m)
        printf("<\n");
    else
    {
        while((*ap)!='\0'&&(*bp)!='\0')
        {
            if((*ap)>(*bp))
            {
                printf(">\n");
                return 0;
            }
            else if((*ap)<(*bp))
            {
                printf("<\n");
                return 0;
            }
            else
            {
                ap++;
                bp++;
            }
        }
        printf("=\n");
    }
    return 0;
}


#include <iostream>
#include <bits/stdc++.h>
using namespace std;
const int MAXN=100000+5;
char a[MAXN],b[MAXN];
int main()
{
    scanf("%s %s",a,b);
    int i=0,j=0;
    while(a[i]=='0')i++;
    while(b[j]=='0')j++;
    int l1=strlen(a),l2=strlen(b);
    if((l1-i)>(l2-j))printf(">\n");
    else if((l1-i)<(l2-j))printf("<\n");
    else
    {
        if(strcmp(a+i,b+j)>0)printf(">\n");
        else if(strcmp(a+i,b+j)<0)printf("<\n");
        else printf("=\n");
    }

    return 0;
}


#include<bits/stdc++.h>
using namespace std;

int main()
{
     char a[10000],b[10000];
    while(cin>>a>>b)
    {
        long int l=strlen(a),l1=strlen(b);
        long long int d=0,c=0;
        for(int i=0;i<l;i++)
            c+=a[i]-'0';
         for(int i=0;i<l1;i++)
            d+=b[i]-'0';
        if(c>d)
            cout<<">"<<endl;
        else if(c<d)
            cout<<"<"<<endl;
        else
            cout<<"="<<endl;
    }
    return 0;
}


#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <algorithm>
using namespace std;

char s1[1001000], s2[1001000], a[1001000], b[1001000];

int main()
{
	scanf("%s %s", s1, s2);
	for(int i=0; s1[i]; ++i) {
		if(s1[i] != '0') {
			strcpy(a, s1+i);
			break;
		}
	}
	for(int i=0; s2[i]; ++i) {
		if(s2[i] != '0') {
			strcpy(b, s2+i);
			break;
		}
	}
	int len_a = strlen(a);
	int len_b = strlen(b);
	if(len_a < len_b) printf("<\n");
	else if(len_a > len_b) printf(">\n");
	else {
		bool equ = true;
		for(int i=0; a[i] && equ; ++i) {
			if(a[i] < b[i]) {
				printf("<\n");
				equ = false;
			}
			else if(a[i] > b[i]) {
				printf(">\n");
				equ = false;
			}
		}
		if(equ) printf("=\n");
	}

    return 0;
}


#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cstdio>
using namespace std;
int main()
{
     char a[10000000],b[10000000];
     int i,j,l,l1;
    while(~scanf("%s",a))
    {
        scanf("%s",b);
        l=strlen(a);
        l1=strlen(b);
          i=j=0;
        for(i=0;i<l;i++)
            if(a[i]!='0')
              break;
        for(j=0;j<l1;j++)
            if(b[j]!='0')
            break;
        if(l-i>l1-j)
            printf(">\n");
            if(l-i<l1-j)
            printf("<\n");

        else
        {
            while(i<l&&j<l1)
            {
            if(a[i]>b[j])
            {
                printf(">\n");
               break;
            }
            if(a[i]<b[j])
            {
               printf("<\n");
                break;
            }
            if(a[i]==b[j])
            {
                i++;j++;
            }
            }
            if(i==l&&j==l1)
           printf("=\n");
        }
    }
    return 0;
}


 #include <bits/stdc++.h>
 using namespace std;
 int main()
 {
     int n,m;
     while(~scanf("%d %d",&n,&m))
     {
         if(n>m)
            printf(">\n");
         else if(n<m)
            printf("<\n");
         else
            printf("=\n");

     }
 }


#include<stdio.h>
#include<string.h>
char a[100],b[100];
int n,m;
int main()
{
    int len1,len2;
    while(gets(a) != NULL)
    {
        gets(b);
        int i,j,k,t,e;
        n = m = 0;
        len1 = strlen(a);
        len2 = strlen(b);
        for(i = 0;i < len1;i++)
        {
            if(a[i] != '0')
                break;
        }
        t = 1;
        for(k = len1-1;k >= i;k--)
        {
            e = a[k] - '0';
            n += e*t;
            t = t*10;
        }
        for(j = 0;j < len2;j++)
        {
            if(b[j] != '0')
                break;
        }
        t = 1;
        for(k = len2-1;k >= j;k--)
        {
            e = b[k] - '0';
            m += e*t;
            t = t*10;
        }
        if(n > m)
            printf(">\n");
        else if(n < m)
            printf("<\n");
        else
            printf("=\n");
    }
    return 0;
}


#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>

using namespace std;

char a[1100016];
char b[1100016];

int main()
{
    int top,t;
    while(~scanf("%s%s",a,b))
    {
        /*if(strcmp(a,b)==0)
        {
            printf("=\n");
            continue;
        }*/
        int lena=strlen(a);
        int lenb=strlen(b);
        int x,y;
        x=y=0;
        for(int i=0; i<=max(lena,lenb); i++)
        {
            if(i<=lena&&a[i]!='0'&&x==0)
            {
                t=i;
                x=1;
            }
            if(i<=lenb&&b[i]!='0'&&y==0)
            {
                top=i;
                y=1;
            }
        }
        //cout<<t<<" "<<top<<endl;
        lena=lena-t;
        lenb=lenb-top;
        if(lena==0)
        {
            if(lenb!=0)printf("<\n");
            else  printf("=\n");
            continue;
        }
        if(lenb==0)
        {
            if(lena!=0) printf(">\n");
            else  printf("=\n");
            continue;
        }
        if(lena<lenb)
        {
            printf("<\n");
        }
        else if(lena>lenb)
        {
             printf(">\n");
        }
        else
        {
            int f=0;
            for(int i=t,j=top; i<lena&&j<lenb; i++,j++)
            {
                if(a[i]>b[j])
                {
                     printf(">\n");
                    f=1;
                    break;
                }
                if(a[i]<b[j])
                {
                    printf("<\n");
                    f=1;
                    break;
                }
            }
            if(f==0) printf("=\n");
        }
    }
    return 0;
}


#include<iostream>
#include<cstring>
using namespace std;
int main()
{
     char a[10000],b[10000];
    while(cin>>a)
    {
        cin>>b;
        long int l=strlen(a),l1=strlen(b);
        int i,j;
        for(i=0;i<l;i++)
            if(a[i]!='0')
              break;
        for(j=0;j<l1;j++)
            if(b[j]!='0')
            break;
        if(l-i>l1-j)
            cout<<">"<<endl;
        else if(l-i<l1-j)
            cout<<"<"<<endl;
        else
        {
            while(i<l&&j<l1)
            if(a[i]>b[j])
            {
                cout<<">"<<endl;
               break;
            }
            else if(a[i]<b[j])
            {
                cout<<">"<<endl;
                break;
            }
            else
            {
                i++;j++;
            }
            if(i==l&&j==l1)
            cout<<"="<<endl;
        }

    }
    return 0;
}


#include<stdio.h>
#include<string.h>
#define N 1000005
char a[N],b[N];
char str[N],tmp[N];
int main()
{
    int l1,l2;
    while(~scanf("%s %s",a,b))
    {
        int i,j,p,q,t = 0;
        l1 = strlen(a);
        l2 = strlen(b);
        for(i = 0;i < l1;i++)
        {
            if(a[i] != '0')
                break;
        }
        for(p = i;p < l1;p++)
        {
            str[t++] = a[p];
        }

        t = 0;
        for(j = 0;j < l2;j++)
        {
            if(b[j] != '0')
                break;
        }
        for(q = j;q < l2;q++)
        {
            tmp[t++] = a[q];
        }
        if(strcmp(str,tmp) > 0)
        {
            printf(">\n");
        }
        else if(strcmp(str,tmp) < 0)
        {
            printf("<\n");
        }
        else if(strcmp(str,tmp) == 0)
        {
            printf("=\n");
        }
    }
    return 0;
}


#include<stdio.h>
int main()
{
    long long a,b;
    scanf("%lld",&a);
    scanf("%lld",&b);
    a=a%100001;
    b=b%100001;
    if(a>b)
        printf(">\n");
    else if(a<b)
        printf("<\n");
    else
        printf("=\n");
    return 0;
}


#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <queue>
#include <algorithm>

using namespace std;

int main()
{
    long long a, b;
    while (~scanf("%lld %lld", &a, &b))
    {
        if (a > b)
            printf(">\n");
        else if (a < b)
            printf("<\n");
        else
            printf("=\n");
    }
    return 0;
}


#include<bits/stdc++.h>
using namespace std;

int main()
{
     long long  a,b;
    scanf("%lld",&a);
    scanf("%lld",&b);
    if(a>b)
    {
        printf(">\n");
    }
    if(a==b)
    {
        printf("=\n");
    }
    if(a<b)
    {
        printf("<\n");
    }
    return 0;
}


#include <stdio.h>
int main()
{
    int a,b;
    while(~scanf("%d %d",&a,&b))
    {
        if(a>b) printf(">\n");
        if(a<b) printf("<\n");
        if(a==b) printf("=\n");
    }
    return 0;
}


#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <queue>

using namespace std;
char a[1123456];
char b[1123456];
int main()
{
    while(~scanf("%s",a))
    {
       scanf("%s",b);
       int l1=strlen(a) ;
       int l2=strlen(b);
       int i=0;
       for(; i<l1; i++)
       {
           if(a[i]!='0')break;
       }
       int j=0;
       for(; j<l2; j++)
       {
           if(b[i]!='0')break;
       }
        int x=l1-i;
        int y=l2-j;
        if(x>y)printf(">\n");
        if(x<y)printf("<\n");
        if(x==y)
        {
            int t=0;
            for(; i<l1; i++,j++)
            {
                if(a[i]>b[j])
                {
                    t=1;
                    break;
                }
                if(a[i]<b[j])
                {
                    t=2;
                    break;
                }
            }
            if(!t)printf("=\n");
            if(t==1)printf(">\n");
            if(t==2)printf("<\n");
        }
    }
}


#include <iostream>
using namespace std;

int main()
{
    long int a,b;
    while(cin>>a>>b)
    {
        if(a>b)
            cout<<">"<<endl;
        else if(a<b)
            cout<<"<"<<endl;
        else
            cout<<"="<<endl;
    }
    return 0;
}


#include<bits/stdc++.h>
using namespace std;

int main()
{
    unsigned long long  a,b;
    scanf("%lld",&a);
    scanf("%lld",&b);
    if(a>b)
    {
        printf(">\n");
    }
    if(a==b)
    {
        printf("=\n");
    }
    if(a<b)
    {
        printf("<\n");
    }
    return 0;
}


#include<stdio.h>
#include<string.h>
char a[1000000],b[1000000];
long long int n,m;
int main()
{
    int len1,len2;
    while(~scanf("%s %s",a,b))
    {
        int i,j,k,t;
        long long int e;
        n = m = 0;
        len1 = strlen(a);
        len2 = strlen(b);
        for(i = 0;i < len1;i++)
        {
            if(a[i] != '0')
                break;
        }
        t = 1;
        for(k = len1-1;k >= i;k--)
        {
            e = a[k] - '0';
            n += e*t;
            t = t*10;
        }
        for(j = 0;j < len2;j++)
        {
            if(b[j] != '0')
                break;
        }
        t = 1;
        for(k = len2-1;k >= j;k--)
        {
            e = b[k] - '0';
            m += e*t;
            t = t*10;
        }
        if(n > m)
            printf(">\n");
        else if(n < m)
            printf("<\n");
        else if(n == m)
            printf("=\n");
    }
    return 0;
}


#include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<cmath>
#include<queue>
using namespace std;
char a[1123456],b[123456];

int main()
{
        scanf("%s%s",&a,&b);
        long long int top1=0,top2=0,len1=strlen(a),len2=strlen(b);
        while(a[top1]=='0') top1++;
        while(b[top2]=='0') top2++;
        if(len1-top1>len2-top2) printf(">\n");
        else if(len1-top1<len2-top2) printf("<\n");
        else
        {
            int flag=1;
            long long int tt=top1;
            for(long long int i=tt;i<len1;i++)
            {
               // cout<<a[top1]<<" "<<b[top2]<<endl;
                if(a[top1]>b[top2])
                {
                    flag=0;
                    printf(">\n");
                    break;
                }
                else if(a[top1]<b[top2])
                {
                    flag=0;
                    printf("<\n");
                    break;
                }
                top1++;
                top2++;
            }
            if(flag) printf("=\n");
        }

    return 0;
}


#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cstdio>
using namespace std;
int main()
{
     char a[10000000],b[10000000];
     int i,j,l,l1;
    while(~scanf("%s",a))
    {
        scanf("%s",b);
        l=strlen(a),l1=strlen(b);
          i=j=0;
        for(i=0;i<l;i++)
            if(a[i]!='0')
              break;
        for(j=0;j<l1;j++)
            if(b[j]!='0')
            break;
        if(l-i>l1-j)
            printf(">\n");
            if(l-i<l1-j)
            printf("<\n");

        else
        {
            while(i<l&&j<l1)
            {
            if(a[i]>b[j])
            {
                printf(">\n");
               break;
            }
            if(a[i]<b[j])
            {
               printf("<\n");
                break;
            }
            if(a[i]==b[j])
            {
                i++;j++;
            }
            }
            if(i==l&&j==l1)
           printf("=\n");
        }
    }
    return 0;
}


#include <stdio.h>
#include <string.h>

char a[1111111], b[1111111];

int main()
{
    memset(a, 0, sizeof a);
    memset(b, 0, sizeof b);
    scanf("%s", a);
    scanf("%s", b);
    int i, j, l1 = strlen(a), l2 = strlen(b);
    for (i = 0; a[i] == '0'; i++);
    for (j = 0; b[j] == '0'; j++);
    if (l1 - i > l2 - j)
        printf(">\n");
    else if (l1 - i < l2 - j)
        printf("<\n");
    else
    {
        int l;
        for (l = i; l < l1; l++)
        {
            if (a[i] > b[j])
            {
                printf(">\n");
                break;
            }
            else if (a[i] < b[j])
            {
                printf("<\n");
                break;
            }
            i++;
            j++;
        }
        if (l == l1)
            printf("=\n");
    }
    return 0;
}


#include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<cmath>
#include<queue>
using namespace std;
char a[1123456],b[123456];

int main()
{
        scanf("%s%s",&a,&b);
        long long int top1=0,top2=0,len1=strlen(a),len2=strlen(b),dian1,dian2;
        while(a[top1]=='0'&&top1<len1) top1++;
        while(b[top2]=='0'&&top2<len2) top2++;
        dian1=top1;
        dian2=top2;
        while(dian1!='.'&&dian1<len1) dian1++;
        while(dian2!='.'&&dian2<len2) dian2++;
        if(dian1-top1>dian2-top2) printf(">\n");
        else if(dian1-top1<dian2-top2) printf("<\n");
      //  if(len1-top1>len2-top2) printf(">\n");
       // else if(len1-top1<len2-top2) printf("<\n");
         //   cout<<top1<<" "<<len1<<" "<<top2<<" "<<len2<<endl;
         else
         {
             int flag=1;
             while(top1<len1&&top2<len2)
            {
               // cout<<a[top1]<<" "<<b[top2]<<endl;
                if(a[top1]=='.'&&b[top2]!='.')
                {
                    flag=0;
                    printf("<\n");
                    break;
                }
                else if(a[top1]!='.'&&b[top2]=='.')
                {
                    flag=0;
                    printf(">\n");
                    break;
                }
            //    else if(a[top1]=='.'&&b[top2]=='.') continue;
                else if(a[top1]>b[top2])
                {
                    flag=0;
                    printf(">\n");
                    break;
                }
                else if(a[top1]<b[top2])
                {
                    flag=0;
                    printf("<\n");
                    break;
                }
                top1++;
                top2++;
            }
           // cout<<"22";
            if(flag) printf("=\n");
         }

    return 0;
}


#include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<cmath>
#include<queue>
using namespace std;
char a[1123456],b[123456];

int main()
{

       while(~scanf("%s%s",&a,&b))
       {
        int top1=0,top2=0,len1=strlen(a),len2=strlen(b);
        while(a[top1]=='0')
        {
            if(top1>=len1) break;
            top1++;
            if(top1>=len1) break;
        }
        while(b[top2]=='0')
        {
            if(top2>=len2) break;
            top2++;
            if(top2>=len2) break;
        }
        if(len1-top1>len2-top2) printf(">\n");
        else if(len1-top1<len2-top2) printf("<\n");
        else
        {
            int flag=1;
            while(top1<len1&&top2<len2)
            {
               // cout<<a[top1]<<" "<<b[top2]<<endl;
                if(a[top1]>b[top2])
                {
                    flag=0;
                    printf(">\n");
                    break;
                }
                else if(a[top1]<b[top2])
                {
                    flag=0;
                    printf("<\n");
                    break;
                }
                top1++;
                top2++;
            }
            if(flag) printf("=\n");
        }
       }

    return 0;
}


#include<stdio.h>
#include<math.h>
#include<string.h>
char a[1000005],b[1000005];
int main()
{

    int i,j;
   while(~scanf("%s",a))
   {

       scanf("%s",b);
       int len = strlen(a);
       int len1= strlen(b);
       int count = 0,count1=0;
      for(i=0;i<len;i++)
      {
          if(a[i]!='0')
            break;
      }
      count=i;
      for(i=0;i<len1;i++)
      {
          if(b[i]!='0')
            break;
      }
      count1 = i;
      if(len - count >len1-count1)
      {
          printf(">\n");
      }
      else if(len - count <len1-count1)
      {
          printf("<\n");
      }
      else
      {
          for(i=count,j=count1;i<len;i++,j++)
          {
              if(a[i]-'0'>b[j]-'0')
              {
                  printf(">\n");break;
              }
              else if((a[i]-'0'<b[j]-'0'))
              {
                  printf("<\n");break;
              }
          }
          if(i==len)
          {
              printf("=\n");
          }
      }

   }
   return 0;
}


#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std;

int main()
{
   char s1[100000],s2[100000];

   int L1,L2,i,j;
   while(~scanf("%s",s1))
   {
       i=j=0;
       scanf("%s",s2);
       L1=strlen(s1);
       L2=strlen(s2);
       for(i=0;i<L1;i++)
       {
           if(s1[i]!='0')
            break;
       }
       for(j=0;j<L2;j++)
       {
           if(s2[j]!='0')
            break;
       }
       if((L1-i)>(L2-j))
            printf(">\n");
       else if((L1-i)<(L2-j))
            printf("<\n");
       else
       {
           while(i<L1&&j<L2)
           {
               if(s1[i]>s2[j])
               {
                   printf(">\n");
                   break;
               }
                if(s1[i]<s2[j])
               {
                   printf("<\n");
                   break;
               }
               if(s1[i]==s2[j])
               {
                   i++;
                   j++;
               }
           }
           if(i==L1&&j==L2)
            printf("=\n");
       }
   }
    return 0;
}