#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<vector>
#include<string.h>
#define N 55
using namespace std;
int n,m,ans;
int vis[N],low[N],dfn[N];
vector<int>g[55];
void dfs(int u,int p)
{
    static int cont=0;
    low[u]=dfn[u]=++cont;
    int child=0;
    vis[u]=1;
    for(int x:g[u])
    {
        if(vis[x]==0)
        {
            child++;
            dfs(x,u);
            low[u]=min(low[u],low[x]);
            if(low[x]>dfn[u])
            {
  //              printf("(%d %d)",u,x);
                ans++;
            }


        }
        else if(x!=p)
        {
            low[u]=min(low[u],dfn[x]);
        }
    }
//    if(u==1&&child==1)
//        ans++;
}
int main()
{
    int be,en;
    cin>>n>>m;
    //init
    ans=0;
    memset(vis,0,sizeof(vis));
    for(int i=0;i<m;i++)
    {
        cin>>be>>en;
        g[be].push_back(en);
        g[en].push_back(be);
    }
    dfs(1,1);
 
    for(int i=1;i<=n;i++)
    {
 //       printf("%d (low :%d)(dfn:%d)\n",i,low[i],dfn[i]);
    }
    cout<<ans<<endl;
}