export {}; const input = require("fs").readFileSync(0).toString().trim().split('\n'); const [N, M]: number[] = input[0].split(" ").map(Number); let field: string[] = []; for(let i=1; i<=N; i++) field.push(input[i]); let parents: number[] = Array.from({length: N*M}, (_, i) => i); let rank: number[] = new Array(N*M).fill(0); const areaNum = (col: number, row: number): number => { return M*row + col; } const find = (x: number): number => { if(x !== parents[x]) return parents[x] = find(parents[x]); return parents[x]; } const union = (x: number, y: number) => { x = find(x); y = find(y); if(x===y) return; if(rank[x] < rank[y]) { const temp = x; x = y; y = temp; } parents[y] = x; if(rank[x] === rank[y]) rank[x]++; } for(let x=0; x { if(v===i) ans += 1 }); console.log(ans);