using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Numerics; using System.Text; using System.Threading.Tasks; using CSharp7.Library; using static System.Math; using static System.Linq.Enumerable; using static CSharp7.Library.Extentions; namespace CSharp7 { public static class Program { public static void Solve(IO io) { var (h, w) = io.Read(); var sky = io.ReadMany(h, s => s.Select(c => c == '*').ToArray()); for (var i = 0; i < h; i++) for (var j = 0; j < w; j++) if (sky[i][j]) { if (sky[i].Count(p => p) == 2) sky[i == 0 ? i + 1 : i - 1][j] = true; else sky[i][j == 0 ? j + 1 : j - 1] = true; goto ExitLoop; } ExitLoop: io.WriteMany(sky, ps => ps.Select(p => p ? '*' : '-').AsString()); } public static void Main() { var sw = new StreamWriter(Console.OpenStandardOutput()) { NewLine = "\n" }; #if DEBUG sw.AutoFlush = true; #else sw.AutoFlush = false; #endif Console.SetOut(sw); Solve(new IO(Console.In, Console.Out)); Console.Out.Flush(); } } } namespace CSharp7.Library { public delegate T Parser(string str); public delegate string Serializer(T value); public class IO { private static readonly Dictionary _parsers = new Dictionary { { typeof(string), (Parser)(s => s) }, { typeof(char), (Parser)char.Parse }, { typeof(int), (Parser)int.Parse }, { typeof(long), (Parser)long.Parse }, { typeof(double), (Parser)double.Parse }, { typeof(decimal), (Parser)decimal.Parse }, { typeof(BigInteger), (Parser)BigInteger.Parse }, }; private static readonly Dictionary _serializers = new Dictionary { { typeof(string), (Serializer)(s => s) }, { typeof(char), (Serializer)(c => c.ToString()) }, { typeof(int), (Serializer)(i => i.ToString()) }, { typeof(long), (Serializer)(l => l.ToString()) }, { typeof(double), (Serializer)(d => d.ToString()) }, { typeof(decimal), (Serializer)(d => d.ToString()) }, { typeof(BigInteger), (Serializer)(b => b.ToString()) }, }; private TextReader _sr; private TextWriter _sw; public IO(TextReader sr, TextWriter sw) { _sr = sr; _sw = sw; } public string ReadLine() => _sr.ReadLine(); public string ReadWord() { var sb = new StringBuilder(); var c = _sr.Read(); while (c != ' ' && c != '\n') { sb.Append((char)c); c = _sr.Read(); } return sb.ToString(); } public T Read(Parser p = null) => (p ?? GetParser())(ReadWord()); public (T1, T2) Read(Parser p1 = null, Parser p2 = null) => (Read(p1 ?? GetParser()), Read(p2 ?? GetParser())); public (T1, T2, T3) Read(Parser p1 = null, Parser p2 = null, Parser p3 = null) => (Read(p1 ?? GetParser()), Read(p2 ?? GetParser()), Read(p3 ?? GetParser())); public (T1, T2, T3, T4) Read(Parser p1 = null, Parser p2 = null, Parser p3 = null, Parser p4 = null) => (Read(p1 ?? GetParser()), Read(p2 ?? GetParser()), Read(p3 ?? GetParser()), Read(p4 ?? GetParser())); public T[] ReadMany(int count, Parser p = null) { var a = new T[count]; for (var i = 0; i < count; i++) a[i] = Read(p); return a; } public (T1[], T2[]) ReadMany(int count, Parser p1 = null, Parser p2 = null) { var a1 = new T1[count]; var a2 = new T2[count]; for (var i = 0; i < count; i++) (a1[i], a2[i]) = Read(p1, p2); return (a1, a2); } public (T1[], T2[], T3[]) ReadMany(int count, Parser p1 = null, Parser p2 = null, Parser p3 = null) { var a1 = new T1[count]; var a2 = new T2[count]; var a3 = new T3[count]; for (var i = 0; i < count; i++) (a1[i], a2[i], a3[i]) = Read(p1, p2, p3); return (a1, a2, a3); } public (T1[], T2[], T3[], T4[]) ReadMany(int count, Parser p1 = null, Parser p2 = null, Parser p3 = null, Parser p4 = null) { var a1 = new T1[count]; var a2 = new T2[count]; var a3 = new T3[count]; var a4 = new T4[count]; for (var i = 0; i < count; i++) (a1[i], a2[i], a3[i], a4[i]) = Read(p1, p2, p3, p4); return (a1, a2, a3, a4); } public void Write(T v, Serializer s = null) { _sw.Write(s?.Invoke(v) ?? GetSerializer()(v)); _sw.Write(' '); } public void Write(T1 v1, T2 v2, Serializer s1 = null, Serializer s2 = null) { Write(v1, s1); Write(v2, s2); } public void Write(T1 v1, T2 v2, T3 v3, Serializer s1 = null, Serializer s2 = null, Serializer s3 = null) { Write(v1, s1); Write(v2, s2); Write(v3, s3); } public void Write(T1 v1, T2 v2, T3 v3, T4 v4, Serializer s1 = null, Serializer s2 = null, Serializer s3 = null, Serializer s4 = null) { Write(v1, s1); Write(v2, s2); Write(v3, s3); Write(v4, s4); } public void WriteLine(T v, Serializer s = null) { Write(v, s); _sw.WriteLine(); } public void WriteLine(T1 v1, T2 v2, Serializer s1 = null, Serializer s2 = null) { Write(v1, v2, s1, s2); _sw.WriteLine(); } public void WriteLine(T1 v1, T2 v2, T3 v3, Serializer s1 = null, Serializer s2 = null, Serializer s3 = null) { Write(v1, v2, v3, s1, s2, s3); _sw.WriteLine(); } public void WriteLine(T1 v1, T2 v2, T3 v3, T4 v4, Serializer s1 = null, Serializer s2 = null, Serializer s3 = null, Serializer s4 = null) { Write(v1, v2, v3, v4, s1, s2, s3, s4); _sw.WriteLine(); } public void WriteMany(IEnumerable vs, Serializer s = null) { foreach (var v in vs) WriteLine(v, s); } public void WriteMany(IEnumerable vs1, IEnumerable vs2, Serializer s1 = null, Serializer s2 = null) { foreach (var (v1, v2) in vs1.Zip(vs2, ValueTuple.Create)) WriteLine(v1, v2, s1, s2); } public void WriteMany(IEnumerable vs1, IEnumerable vs2, IEnumerable vs3, Serializer s1 = null, Serializer s2 = null, Serializer s3 = null) { foreach (var (v1, v2, v3) in vs1.Zip(vs2, vs3, ValueTuple.Create)) WriteLine(v1, v2, v3, s1, s2, s3); } public void WriteMany(IEnumerable vs1, IEnumerable vs2, IEnumerable vs3, IEnumerable vs4, Serializer s1 = null, Serializer s2 = null, Serializer s3 = null, Serializer s4 = null) { foreach (var (v1, v2, v3, v4) in vs1.Zip(vs2, vs3, vs4, ValueTuple.Create)) WriteLine(v1, v2, v3, v4, s1, s2, s3, s4); } private Parser GetParser() => (Parser)_parsers[typeof(T)]; private Serializer GetSerializer() => (Serializer)_serializers[typeof(T)]; } public static class Extentions { public static string AsString(this IEnumerable source) => new string(source.ToArray()); public static void Swap(ref T x, ref T y) { var tmp = x; x = y; y = tmp; } public static IEnumerable Zip(this IEnumerable first, IEnumerable second, IEnumerable thrid, Func resultSelector) { using (var e1 = first.GetEnumerator()) using (var e2 = second.GetEnumerator()) using (var e3 = thrid.GetEnumerator()) { while (e1.MoveNext() && e2.MoveNext() && e3.MoveNext()) yield return resultSelector(e1.Current, e2.Current, e3.Current); } } public static IEnumerable Zip(this IEnumerable first, IEnumerable second, IEnumerable thrid, IEnumerable fourth, Func resultSelector) { using (var e1 = first.GetEnumerator()) using (var e2 = second.GetEnumerator()) using (var e3 = thrid.GetEnumerator()) using (var e4 = fourth.GetEnumerator()) { while (e1.MoveNext() && e2.MoveNext() && e3.MoveNext() && e4.MoveNext()) yield return resultSelector(e1.Current, e2.Current, e3.Current, e4.Current); } } } }