#include<bits/stdc++.h>
using namespace std;
#define v1 v[x][q]
const long long MAXN=100007,MAXM=1000007;
vector<int> ezik[MAXN];
vector<pair<int,int>> anss;
vector<int> v[MAXN];
int br=0;
bool b[MAXN];
void dfs(int x)
{
    b[x]=1;
    br++;
    for (int q=0;q<v[x].size();q++)
    {
        if (!b[v1])
        {
            dfs(v1);
        }
    }
}
int main()
{
    int n,m;
    cin>>n>>m;
    for (int q=0;q<m;q++)
    {
        int a12;
        cin>>a12;
        ezik[a12].push_back(q);
        cin>>a12;
        ezik[a12].push_back(q);
    }
    for (int q=1;q<=n;q++)
    {
        if (ezik[q].size()==2)
        {
            v[ezik[q][0]].push_back(ezik[q][1]);
            v[ezik[q][1]].push_back(ezik[q][0]);
        }
    }
    int ans=0;
    for (int q=0;q<m;q++)
    {
        if (!b[q])
        {
            br=0;
            dfs(q);
            ans+=br/2;
        }
    }
    cout<<ans<<"\n";
}
