#include<bits/stdc++.h>
#define int long long
using namespace std ;
int n ;
vector<int> tree[3000005] ;
int ans = -2147483647 ;
int id = 0 ;
int dp[1600005] ;
int dep[1600005] ;
int siz[1600005] ;
void dfs( int x , int pa ) {
siz[x] = 1 ;
dep[x] = dep[pa] + 1 ;
for ( int i = 1 ; i < tree[x].size() ; i++ ) {
int now = tree[x][i] ;
if ( now == pa ) {
continue ;
}
dfs( now , x ) ;
siz[x] = siz[now] ;
}
return ;
}
void f( int x , int pa ) {
for ( int i = 1 ; i < tree[x].size() ; i++ ) {
int now = tree[x][i] ;
if ( now == pa ) {
continue ;
}
dp[now] = dp[x] + n - ( 2 * siz[now] ) ;
f( now , x ) ;
}
return ;
}
signed main( ) {
cin >> n ;
for ( int i = 1 ; i <= n ; i++ ) {
tree[i].push_back(0) ;
}
for ( int i = 1 ; i < n ; i++ ) {
int u , v ;
scanf( "%lld%lld" , &v , &u ) ;
tree[v].push_back(u) ;
tree[u].push_back(v) ;
}
dfs( 1 , 0 ) ;
for ( int i = 1 ; i <= n ; i++ ) {
dp[1] += dep[i] ;
}
f( 1 , 0 ) ;
for ( int i = 1 ; i <= n ; i++ ) {
if ( ans < dp[i] ) {
ans = dp[i] ;
id = i ;
}
}
printf( "%lld" , id ) ;
return 0 ;
}