//两种写法 原理都是欧几里得算法(辗转相除法)

//递归写法
#define _CRT_SECURE_NO_WARNINGS

#include <cstdio>
#include <iostream>

using namespace std;
int gcd(int a, int b) {
	if (b == 0) {
		return a;
	}
	else {
		return gcd(b, a % b);
	}
}
int main() {
	int m, n;
	while (scanf("%d%d", &m, &n) != EOF) {
		printf("%d", gcd(m, n));
	}
	return 0;
}

//非递归写法
#include <cstdio>
#include <iostream>
using namespace std;
int main() {
	int m, n,temp;
	while (scanf("%d%d", &m, &n) != EOF) {
		while (m % n != 0) {
			temp = m;
			m = n;
			n = temp % n;
		}
		printf("%d\n", n);
	}

	return 0;
}