/*																													   
 Templatka c++ Kacper Fis																							   																											   //
*/																													  
																								   
#include <bits/stdc++.h>																							   
																													   
using namespace std; 																								   
																													   
const int INF = 1000000001;																						   
const float PI = 3.14;																								   
typedef long long LL;																								   
																													   
typedef vector<int> vi;																								   
typedef list<int> li;																								   
typedef queue<int> qi; 																								   
typedef pair<int,int> ii; 																							   
typedef map<string,int> msi; //np msi['nazwa'] = 'liczba'															   
typedef vector<ii> vii; //vector par<int>, do tworzenia tablicy dla grafów wagowych #dijkstra #Bellman_Ford			   
typedef priority_queue< ii, vector<ii>, greater<ii> > pq; //kolejka priorytetowa vectorów par(top()=min) #dijkstra	   
																													   																				   
vector<ii>::iterator iter;																							   
																													   																				   
#define print_list(x) for(it = (x).begin(); it != (x).end(); it++) {cout << *it << " ";}							   
#define print_vector(x) for(it2 = (x).begin(); it2 != (x).end(); it2++) {cout << *it2 << " ";}						   
#define search_list(x) for(it = (x).begin(); it != (x).end(); it++)													   
#define search_vector(x) for(it2 = (x).begin(); it2 != (x).end(); it2++);											   
#define pb(x) push_back(x) 																							   
#define pf(x) push_front(x)																							   
#define mp(x, y) make_pair(x, y)                                                                                       
///////////////////////////////////////////////GLOBAL DEFINITIONS////////////////////////////////////////////////////////

///////////////////////////////////////////////////FUNCTIONS/////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////MAIN////////////////////////////////////////////////////////////////
int main(int argc, char* argv[])																					 
{ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);                  												       
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	char tab[2005][2005];
	int h, w;
	cin >> h >> w;
	
	vector< vector<int> > right(h, vector<int>(w));  //leci do prawej
	vector< vector<int> > left(h, vector<int>(w));	 //leci do lewej
	vector< vector<int> > bottom(h, vector<int>(w)); //leci w dół
	vector< vector<int> > up(h, vector<int>(w)); 	 //leci w górę
	 
	for(int i = 0; i < h; i++){
		for(int j = 0; j < w; j++){
			cin >> tab[i][j];
		}
	} 
	
	//right
	for(int i = 0; i < h; i++){
		int licznik = 0;
		for(int j = 0; j < w; j++){
			if(tab[i][j] == '.') licznik++;
			else licznik = 0;
			
			right[i][j] = licznik; 
		}
	//left
		licznik = 0;
		for(int j = w-1; j >= 0; j--){
			if(tab[i][j] == '.') licznik++;
			else licznik = 0;
			
			left[i][j] = licznik;
		}
	}
	//bottom
	for(int i = 0; i < w; i++){
		int licznik = 0;
		for(int j = 0; j < h; j++){
			if(tab[j][i] == '.') licznik++;
			else licznik = 0;
			
			bottom[j][i] = licznik;
		}
	//up
		licznik = 0;
		for(int j = h-1; j >= 0; j--){
			if(tab[j][i] == '.') licznik++;
			else licznik = 0;
			
			up[j][i] = licznik;
		}
	}
   
	int ans = 0;
	for(int i = 0; i < h; i++){
		for(int j = 0; j < w; j++){
			int counter = 0;
			//cout << "i,j: " << i << ", " << j << endl;
			counter += left[i][j];
			counter += right[i][j];
			counter += bottom[i][j];
			counter += up[i][j];
			//cout << "counter: " << counter << endl;
			counter -= 3;
			ans = max(ans, counter);
		}
	}
   
	cout << ans << endl;

   
	//cout << "wyswietlenie right: " << endl;
	//for(int i = 0; i < h; i++){
		//for(auto it = right[i].begin(); it != right[i].end(); it++){
			//cout << *it;
		//}
		//cout << endl;
	//}
	
	//cout << "wyswietlenie left: " << endl;
	//for(int i = 0; i < h; i++){
		//for(auto it = left[i].begin(); it != left[i].end(); it++){
			//cout << *it;
		//}
		//cout << endl;
	//}
	
	
	//cout << "wyswietlenie bottom: " << endl;
	//for(int i = 0; i < h; i++){
		//for(auto it = bottom[i].begin(); it != bottom[i].end(); it++){
			//cout << *it;
		//}
		//cout << endl;
	//}
	
	//cout << "wyswietlenie up: " << endl;
	//for(int i = 0; i < h; i++){
		//for(auto it = up[i].begin(); it != up[i].end(); it++){
			//cout << *it;
		//}
		//cout << endl;
	//}
	
	return 0;
}


Measured memory_bytes: 66944