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

int gcm_(int l, int g){
  return l == 0 ? g : gcm_(g % l, l);
}

int gcm(int *in, int num){
  if (num == 2) return gcm_(in[0], in[1]);
  if (num > 2) return gcm_(*in, gcm(in + 1, num - 1));
  return *in;
}

int main(){
  int *p, n = 1;
  p = malloc(sizeof(int));
  if (p == NULL) return 1;
  while (scanf("%d", p + n - 1) == 1) {
    int *tmp = realloc(p, sizeof(int) * ++n);
    if (tmp == NULL) {
      free(p);
      return 1;
    }
    p = tmp;
  }
  printf("%d\n", gcm(p, n - 1));
  free(p);
  return 0;
}