#include <stdio.h>
#include <stdlib.h>

char **GET_ARRAY_CHAR2(long row, long col);
int **GET_ARRAY_INT2(long row, long col);

int main(void) {
   
   int H,W;
   
   scanf("%d%d",&H,&W);
   
   char **S = GET_ARRAY_CHAR2(H + 1,W + 1);
   
   int i;
   for (i = 0; i < H; i++) {
      scanf("%s", S[i]);
      if (i == H - 1) {
         break;
      }
   }
   
   int **Row = GET_ARRAY_INT2(H,W);
   int **Col = GET_ARRAY_INT2(H,W);

   int j,temp;
   int count;
   
   
   for (i = 0; i < H; i++) {
      for (j = 0; j < W; j++) {
         if (S[i][j] == '#') {
            Row[i][j] = 0;
         }
         else {
            temp = j;
            count = 0;
            while (S[i][temp] == '.' && temp < W) {
               count = count + 1;
               temp  = temp  + 1;
            }
            for (j = j; j < temp;j++) {
               Row[i][j] = count;
            }
            j = j - 1;
         }
      }
   }
   
   /*
   for (j = 0; j < W; j++) {
      for (i = 0; i < H; i++) {
         if (S[i][j] == '#') {
            Col[i][j] = 0;
         }
         else {
            temp = i;
            count = 0;
            while (S[temp][j] == '.' && temp < H) {
               count = count + 1;
               temp  = temp  + 1;
            }
            for (i = i; i < temp;i++) {
               Col[i][j] = count;
            }
            i = i - 1;
         }
      }
   }
    */
   

   for (j = 0; j < W; j++) {
      for (i = 0; i < H; i++) {
         if (S[i][j] == '#') {
            Col[i][j] = 0;
         }
         else {
            temp = i;
            count = 0;
            while (S[temp][j] == '.' && temp < H) {
               count = count + 1;
               temp  = temp  + 1;
            }
            for (i = i; i < temp;i++) {
               Col[i][j] = count;
            }
            i = i - 1;
         }
      }
   }
   
   int ans = 0;
   for (i = 0; i < H; i++) {
      for (j = 0; j < W; j++) {
         if (ans < Row[i][j] + Col[i][j] - 1 && Row[i][j] != 0) {
            ans =Row[i][j] + Col[i][j] - 1;
         }
      }
   }
   
   printf("%d\n",ans);
   
   
   
   return 0;
}

char **GET_ARRAY_CHAR2(long row, long col) {
   
   long i,j;
   
   char **Matrix;
   Matrix = malloc(sizeof(char*)*row);
   if (Matrix == NULL) {
      printf("Error in GET_ARRAY_CHAR2\n");
      printf("Need More Memory(row=%ld)\n",row);
      exit(1);
   }
   for (i = 0; i < row; i++) {
      Matrix[i] = malloc(sizeof(char)*col);
      if(Matrix[i] == NULL){
         printf("Error in GET_ARRAY_CHAR2\n");
         printf("Need More Memory(col=%ld)\n", col);
         exit(1);
      }
   }
   
   for (i = 0; i < row; i++) {
      for (j = 0;j < col; j++) {
         Matrix[i][j] = 0;
      }
   }
   
   return Matrix;
   
}

int **GET_ARRAY_INT2(long row, long col) {
   
   long i,j;
   
   int **Matrix;
   Matrix = malloc(sizeof(int*)*row);
   if (Matrix == NULL) {
      printf("Error in GET_ARRAY_INT2\n");
      printf("Need More Memory(row=%ld)\n", row);
      exit(1);
   }
   for (i = 0; i < row; i++) {
      Matrix[i] = malloc(sizeof(int)*col);
      if (Matrix[i] == NULL) {
         printf("Error in GET_ARRAY_INT2\n");
         printf("Need More Memory(col=%ld)\n", col);
         exit(1);
      }
   }
   
   for (i = 0; i < row; i++) {
      for (j = 0; j < col; j++) {
         Matrix[i][j] = 0;
      }
   }
   
   return Matrix;
   
}



Measured memory_bytes: 35456