﻿#include <iostream>
using namespace std;

int main()
{
    // 5. Adott két pozitív egész szám, határozzuk meg a legkisebb közös
    // többszörösüket.

    /*
    int a, b;
    cin >> a >> b;

    int tobbszoros = a;

    while (tobbszoros % b != 0)
        tobbszoros = tobbszoros + a;

    cout << tobbszoros << endl;
    */


    // Legnagyobb közös osztó meghatározása

    // 1. megoldás: végigpróbáljuk az összes lehetséges osztót
    // (1-től a kisebbik számig terjedő egészeket), és azok közül,
    // amelyek tényleg közös osztók megtartjuk az utolsót (legnagyobbat).
    // (ld. előző házi megoldása)
    /*
    int n,m;
    cin >> n >> m;
    int eredmeny;

    for (int i = 1; i <= n && i <= m; i++) {
        if (n%i == 0 && m%i==0) {
            eredmeny = i;
        }
    }

    cout << eredmeny << endl;
    */

    // 2. megoldás: euklideszi-algoritmus kivonásos változata
    /*
    int a, b;
    cin >> a >> b; // pozitív egészek

    while (a != b) {
        // a nagyobból kivonjuk a kisebbet
        if (a > b)
            a = a - b;
        else
            b = b - a;
    }

    cout << a << endl;
    */

    // 3. megoldás: euklideszi-algoritmus osztásos változata
    int a, b;
    cin >> a >> b; // pozitív egészek

    while (b != 0) {
        int regi_a = a;
        a = b;
        b = regi_a % b;
    }

    cout << a << endl;

    return 0;
}
