program prob5
    implicit none
    integer, allocatable::c(:,:), dist(:), cnt(:), ct(:,:), disted(:), ans(:,:)
    integer::n, m, i, j, k, a, b
    read(*,*) n, m
    allocate(c(n,n),dist(n),cnt(n),ct(n,n),disted(n),ans(n,n))
    c = 0
    do i = 1, m
        read(*,*) a, b
        c(a,b) = 1
        c(b,a) = 1
    end do
    ans = c
    do i = 1, n
        dist = 0
        disted = 0
        disted(i) = 1
        cnt = 0
        ct = c
        do j = 1, n
            if(c(i,j) == 1) then
                dist(j) = 1
                cnt(j) = 1
                ct(i,j) = 0
                ct(j,i) = 0
                disted(j) = 1
            end if
        end do
        do while(sum(disted) < n)
            do j = 1, n
                if(dist(j) == 1) then
                    do k = 1, n
                        if(ct(j,k) == 1) then
                            dist(k) = 1
                            if(cnt(k) > 0) then
                                ans(j,k) = 0
                                ans(k,j) = 0
                            end if
                            disted(k) = 1
                            cnt(k) = cnt(k) + 1
                            ct(j,k) = 0
                            ct(k,j) = 0
                        end if
                    end do
                end if
                dist(j) = 0
            end do
        end do
    end do
    write(*,*) sum(ans)/2
    stop
end program