#include <iostream>
#include <list>
#include <cstring>
using namespace std;
int main()
{
int lmiast, ldrog;
cin >> lmiast;
cin >> ldrog;
int lpowiazan=0, zmiasta, domiasta;
short** ttwod = new short*[lmiast+1]; // tablica wskaźników
for (int i=0; i<lmiast+1; i++)
{
ttwod[i]=new short[lmiast+1];
for (int j=0; j<lmiast+1; j++)
ttwod[i][j]=0;
}
for (int i=0; i<ldrog; i++)
{
cin >> zmiasta;
cin >> domiasta;
ttwod[zmiasta][domiasta]++;
}
/* KONIEC TABLICY. CO DALEJ? */
/* WYPISANIE TYCH, KTÓRE ŁĄCZĄ SIĘ Z 2 */
list<int>listawarstw;
for (int i=0; i<lmiast+1; i++)
{
if (ttwod[i][2]!=0)
{
for (int temp=ttwod[i][2]; temp!=0; temp=temp-1)
{
listawarstw.push_back(i);
}
if (i==1)
{
for (int temp=ttwod[i][2]; temp!=0; temp=temp-1)
{
listawarstw.pop_back();
lpowiazan++;
}
}
}
}
/*DODAWANIE KOLEJNYCH WARSTW, SPRAWDZANIE CZY ŁĄCZĄ SIĘ Z 1*/
while (listawarstw.size()!=0)
{
int i=listawarstw.back();
for(int j=0; j!=lmiast+1; j++)
{
if (ttwod[j][i]!=0)
{
if (j==1)
{
for (int temp=ttwod[j][i]; temp!=0; temp=temp-1)
{
lpowiazan++;
}
}
else
{
for (int temp=ttwod[j][i]; temp!=0; temp=temp-1)
{
listawarstw.push_front(j);
}
}
}
}
if (listawarstw.size()==0)
break;
listawarstw.pop_back();
}
cout<<"liczba powiazan: "<<lpowiazan<<endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bGlzdD4KI2luY2x1ZGUgPGNzdHJpbmc+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBtYWluKCkgCnsKICAgIGludCBsbWlhc3QsIGxkcm9nOwogICAgY2luID4+IGxtaWFzdDsKICAgIGNpbiA+PiBsZHJvZzsKICAgIGludCBscG93aWF6YW49MCwgem1pYXN0YSwgZG9taWFzdGE7ICAgIAogICAgc2hvcnQqKiB0dHdvZCA9IG5ldyBzaG9ydCpbbG1pYXN0KzFdOyAvLyB0YWJsaWNhIHdza2HFum5pa8OzdwogICAgZm9yIChpbnQgaT0wOyBpPGxtaWFzdCsxOyBpKyspCgl7CiAgIAkJIHR0d29kW2ldPW5ldyBzaG9ydFtsbWlhc3QrMV07CiAgIAkJIGZvciAoaW50IGo9MDsgajxsbWlhc3QrMTsgaisrKQogICAgIAkgICAgICAgICAgICAgdHR3b2RbaV1bal09MDsKCX0KICAgIGZvciAoaW50IGk9MDsgaTxsZHJvZzsgaSsrKQogICAgewogICAgICAgIGNpbiA+PiB6bWlhc3RhOwogICAgICAgIGNpbiA+PiBkb21pYXN0YTsKICAgICAgICB0dHdvZFt6bWlhc3RhXVtkb21pYXN0YV0rKzsKICAgIH0KICAgIC8qIEtPTklFQyBUQUJMSUNZLiBDTyBEQUxFSj8gKi8KICAgIC8qIFdZUElTQU5JRSBUWUNILCBLVMOTUkUgxYHEhENaxIQgU0nEmCBaIDIgKi8KICAgIGxpc3Q8aW50Pmxpc3Rhd2Fyc3R3OwogICAgZm9yIChpbnQgaT0wOyBpPGxtaWFzdCsxOyBpKyspCiAgICB7CiAgICAgICAgaWYgKHR0d29kW2ldWzJdIT0wKQogICAgICAgIHsKICAgICAgICAJZm9yIChpbnQgdGVtcD10dHdvZFtpXVsyXTsgdGVtcCE9MDsgdGVtcD10ZW1wLTEpCiAgICAgICAgCXsKCQkJCWxpc3Rhd2Fyc3R3LnB1c2hfYmFjayhpKTsKCQl9CgkJaWYgKGk9PTEpCgkJewoJCQlmb3IgKGludCB0ZW1wPXR0d29kW2ldWzJdOyB0ZW1wIT0wOyB0ZW1wPXRlbXAtMSkKCQkJewoJCQkJbGlzdGF3YXJzdHcucG9wX2JhY2soKTsKCQkJCWxwb3dpYXphbisrOwoJCQl9CQkKCQl9Cgl9CiAgICB9CiAgICAvKkRPREFXQU5JRSBLT0xFSk5ZQ0ggV0FSU1RXLCBTUFJBV0RaQU5JRSBDWlkgxYHEhENaxIQgU0nEmCBaIDEqLwogICAgd2hpbGUgKGxpc3Rhd2Fyc3R3LnNpemUoKSE9MCkKICAgIHsKICAgICAgICBpbnQgaT1saXN0YXdhcnN0dy5iYWNrKCk7CiAgICAgICAgZm9yKGludCBqPTA7IGohPWxtaWFzdCsxOyBqKyspCiAgICAgICAgewogICAgICAgICAgICBpZiAodHR3b2Rbal1baV0hPTApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIAlpZiAoaj09MSkKCQkJewoJCQkJZm9yIChpbnQgdGVtcD10dHdvZFtqXVtpXTsgdGVtcCE9MDsgdGVtcD10ZW1wLTEpCiAgICAgICAgCSAgICAgICAgICAgIAl7CiAgICAgICAgCSAgICAgICAgICAgIAkJbHBvd2lhemFuKys7CgkJCQl9CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQlmb3IgKGludCB0ZW1wPXR0d29kW2pdW2ldOyB0ZW1wIT0wOyB0ZW1wPXRlbXAtMSkKCQkJCXsKICAgICAgICAJICAgICAgICAgICAgCQlsaXN0YXdhcnN0dy5wdXNoX2Zyb250KGopOwogICAgICAgIAkgICAgICAgICAgICAJfQogICAgICAgIAkgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAobGlzdGF3YXJzdHcuc2l6ZSgpPT0wKQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgbGlzdGF3YXJzdHcucG9wX2JhY2soKTsKICAgIH0KICAgIGNvdXQ8PCJsaWN6YmEgcG93aWF6YW46ICI8PGxwb3dpYXphbjw8ZW5kbDsKfQog
CjMxIDYwCjEgMwozIDQKNCA1CjUgNgo2IDcKNyA4CjggOQo5IDEwCjEwIDExCjExIDEyCjEyIDEzCjEzIDE0CjE0IDE1CjE1IDE2CjE2IDE3CjE3IDE4CjE4IDE5CjE5IDIwCjIwIDIxCjIxIDIyCjIyIDIzCjIzIDI0CjI0IDI1CjI1IDI2CjI2IDI3CjI3IDI4CjI4IDI5CjI5IDMwCjMwIDMxCjMxIDIKMSAzCjMgNAo0IDUKNSA2CjYgNwo3IDgKOCA5CjkgMTAKMTAgMTEKMTEgMTIKMTIgMTMKMTMgMTQKMTQgMTUKMTUgMTYKMTcgMTgKMTggMTkKMTkgMjAKMjAgMjEKMjEgMjIKMjIgMjMKMjMgMjQKMjQgMjUKMjUgMjYKMjYgMjcKMjcgMjgKMjggMjkKMjkgMzAKMzAgMzEKMzEgMg==
31 60
1 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
12 13
13 14
14 15
15 16
16 17
17 18
18 19
19 20
20 21
21 22
22 23
23 24
24 25
25 26
26 27
27 28
28 29
29 30
30 31
31 2
1 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
12 13
13 14
14 15
15 16
17 18
18 19
19 20
20 21
21 22
22 23
23 24
24 25
25 26
26 27
27 28
28 29
29 30
30 31
31 2