// 32351ZN #include #include #include #include #include #include #include #include #include using namespace std; typedef vector ivec_t; typedef vector imat_t; #define FOR_EACH(p,q,r) for(p=q;p!=r;p++) #define FOR_EACH_C(p,c) for(p=(c).begin();p!=(c).end();p++) int Solve(ivec_t& blanks) { while(blanks.size() > 1) { int n=blanks.size(); if(blanks[n-1] < blanks[n-2]) { blanks[n-2] %= blanks[n-1]; if(blanks[n-2] == 0)blanks.erase(blanks.begin()+n-2); } else if(blanks[n-1] == blanks[n-2]) { blanks.pop_back(); } else { blanks[n-1] %= blanks[n-2]; if(blanks[n-1] == 0)blanks.pop_back(); } } return blanks.back(); } int main() { int n; cin >> n; ivec_t blanks(n); while(n--) { cin >> blanks[n]; } cout << Solve(blanks) << endl; return 0; }