//土尔逊Torson 编写于2023/5/08
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstdio>

using namespace std;

int GCD(int a, int b) {        // a = g * L
	if (b == 0) {              // b = g * m
		return a;              // a = b * k + r
	}                          // g * L = g * m * k + r
	else {                     // r = g * (L - m * k)
		return GCD(b, a%b);    // 所以 a,b 的最大公约数 可以转换成 b, a mod b 的最大公约数
	}                          // a mod b: 表示 a 除以 b 后的余数 r
}

int main() {                   
	int a, b;
	while (scanf("%d%d", &a, &b) != EOF) {
		printf("%d\n", GCD(a, b));  // 调用的 GCD()函数使用了递归的思想
	}                               // 即 欧几里得算法:又称 辗转相除法
	system("pause");
	return EXIT_SUCCESS;
}
// 64 位输出请用 printf("%lld")