CRECT - Đếm các hình chữ nhật

Tags: dp, math, stack

Problem

https://vn.spoj.com/problems/CRECT

https://oj.vnoi.info/problem/CRECT

HùngĐM đang theo học một khóa học cơ bản về tiếng Đức. Vì mới bắt đầu, HùngĐM mới biết mặt 5 chữ cái là A, B, C, D, E. Ngày sinh nhật, HùngĐM được tặng một bảng hình chữ nhật có các chữ cái ghi ở các ô. Nhiệm vụ của HùngĐM sẽ là tìm các từ ẩn trong bảng này. Tuy nhiên, do vốn lười học ngoại ngữ, đam mê lập trình, HùngĐM lại nghĩ ra một trò chơi khác: đếm số hình chữ nhật con của bảng này có chứa đúng 3 chữ cái khác nhau( Vì HùngĐM không thích quá ít, cũng chẳng ưa quá nhiều ). Tuy nhiên, bài này không đơn giản để HùngĐM có thể giải được dễ dàng. Các bạn hãy giúp HùngĐM để HùngĐM có thể nhanh chóng tập trung vào việc học tiếng Đức.

Input

Dòng đầu ghi 2 số M, N (M, N <= 400). Bảng chữ của HùngĐM được chia làm M dòng, mỗi dòng gồm N ô vuông đơn vị. M dòng sau, mỗi dòng là một xâu độ dài N thể hiện một dòng của bảng chữ chỉ gồm các chữ cái A, B, C, D, E.

Output

Gồm một số duy nhất là số hình chữ nhật con tìm được.

Example

Input
4 3
CED
CEB
CBC
DDA

Output
12

Tutorial


Submission

CRECT.cpp