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

int gcd(int a,int b){
  int g=max(a,b),l=min(a,b),n=l;
  while(g%l!=0){
    n=g%l;
    g=l;
    l=n;
  }
  return l;
}

int main(){
  int n;
  cin>>n;
  vector<int64_t>a(n);
  for(int i=0;i<n;i++)cin>>a[i];
  int ans=a[0];
  for(int i=0;i<n;i++){
    ans=gcd(ans,a[i]);
  }
  cout<<ans<<endl;
}
#include <iostream>
#include <cstdio>
using namespace std;
int n,a,now;
int gcd(int x,int y)
{
	if(x<y) swap(x,y);
	if(y==0) return x;
	return gcd(y,x%y); 
}
int main()
{
	scanf("%d%d",&n,&now);
	for(int i=2;i<=n;i++)
	{
		scanf("%d",&a);
		now=gcd(now,a);
	}
	printf("%d",now);
	return 0;
}