Software Developer's Guide for Early-Stage Startups

==================================================================================================================++++++==+==+=========++==++++=========+=====+===========++=======================---=-=----------=====================+====+=====++=++++++++++++===========--------==-=-----====================+=++++=+++++++++=+=====++=+==+++++++++++++++++++++++++++++++=++++====+=+++++++++++++++++++++++
==========================================================================--=-----=============================================================================================++=======------------------------------=-==============================+============---------------------------===============+++++++=========+=+===========+++=++++++++++++++++++++++=++================+++===========+===++++++
============================================-=====-----===-===============-=------=====================================================================================+==+==+==++=====----:::::::--:-:--------------=====------===============================---::::::::------------------==-===========+++++==========================+==+++++++++++++++++++++++=========================+==========++=++=+++
===================--=======================--=====-==------==============--=-----===========================================================================+===++++++=++++++=========--::::::::::::-------------------------==-==-====+======+=============--::::::::::::::----------------------========================================+++++++++++++++==+==++========================================+====++
==========================================---==-=======------======---==---------================================================================================+++++=+==+=============---:::::::::--------:---------------------=========================--::-::::::::::---------------------=--=========================================++++=+++++++++=++==+===++=======================================+===+
===========================--=-==-=======-=====--=====++==---=----=--=--=-------=======================================================================================+=============------::::::::::-::----------------------=--=========================--:--::::-:-:::::-:::---------------=====-=========================================++++++++++==++==++++++++=+=======================================++
--====-======================--=---===---=====-======+++++++========--==-=-------=---===============================================================================================--------:::::::::::-::--------------=----------====================--------::::--:-::-:::--------------=----------=====================================++=+++++=+++++++====++============================+==================
---==-==-=====-==-=-------=------=-------=--====-==++++++****++=++**+===--==-------------------=-====-==========================================---==-============================----:::::-::-:-:::::::----------------------------==================--:-::------:----:--------------------=----------===================================+++++++++++=+=++++====================================================
-------==-===----=-----=-------------------=======++++++*************+=======---------------------===-=========================-===========-------===-===========================----::-::-::---::-:-:--:--:::----:---------------------=---========----:::::--------------------------=-------==-=---=-=================================+++==+++++=++++++=====================================================+
------=---------------===--------==-----========+++++=+**********#****=====-----------------------===----==========-----===---==========----=--===-==----========================----:------:-:::--:---------::------------:--------------------------:::::--::------------------------=-------==========================================================+======================================================
--------------------------------=-----======+++++++++++**#*#*#*#******+=====---------------------=--==-=======----------===-=========-----------------------=============---====--------------------------------------------------------------------------:----------------------=------------==========================================================++=++===================================================
------------------------------------=====+++++++++++++*********#*******====--------------------===-===========---------=====--==-==------------------------------======----------------------=---------------:::--:::-------------:--------::::---::--------:-----------------===--==-=-------==========================================================++=+=====================-==============================
-----------------------------------==-++++++++++++++++**********#***#***+=-=-------------------=-----==-==-=---==----==-----------------------------------------=========-----------------------------------:----::--------------------:--:---------------------------------=-==--====--=--================================================================================-==-=================================
---------------------------------===+++++++++***+++++++*#******************=--------------------------====---------=----::::::::-::::::::----------:----------=-=-=-==-==-----------------------------------------------------------:-:----------------------------------------===========================-===============================================================---===-===============================
---------------------------------==+++++++++++*++++++****#*******#**********===----------------------=-==-------------::::::::::::::::::::-::---------------=======--------------------------------------------:---------------------------------------------------------------------===================-================================================================--=--=---=============================+
---------------------------------+++++++++++++**+++++****#*******##**********+==-=-----------=---------=-------------::::::::::::::::::::::-:::-------------=--=-=--=--------=----------------------------:----------------------------------------------------------------------=========================================================================================-==-====-===================-=========
-------------------------------+++++++++++++*++++++++*************#**#********===--------------=--------=-----------:::::::::::::::::::::::::::::----------=---------------------------------------------:::----------------------------------------------------------------==-===========================-==================-=-----=======================================-====================================
-----------------------------==+++++++++++++++++++++****************#**********===-----------------------::-----------::::::::::::::::::::::::::------------------------------------------------------::::--::---------------------------------------------------------------=-============--===-==========================-----=--------=======================================================================
----------------==---==----=+++++++++++++++++++++++***#*************************===---------------------:::::--:----::::::::::::::::::::::::::::------------------------------------------------------:::-:-----------------------------------------------------------------=--=========-=----=---====-=--=============--------------======-====-===============================================================
--------------=+++++*++++=+++++++++++++++++++++++++************************+****+=---------------------::::::::::::::::::::::::::::::::::::-::::::----------::--:-::::-:-------------------------------------------------------------------------------------------------=========-=-=========-====-----=-=-==========-----------===============================================================================
----------=++++++++*****+*+++++++++++++++++++++++++*****#***********************#=--------------------:::::::::::::::::::::::::::::::::::::-:::--::----------:::::::::::::::::----------------------------------:::-------------------------==--------------------------=-==-========-=====--==----==--------====---------==-----================================-==============================================
------==+=+++++++++*#******++*+++=++*++++++++++++++*****##***********************+-------::::---:-:-::::::::::::::::::::::::::::::::::::::::::-:::::-:------::-:::::::::::::::::-----------------------------::-:::------------------------===-----------------------------=-========--------=====----=-----------=--=-----=----========================-======-======-==--=====================================
==---=++++++++++++*####***++**++++++**++++++++++++++*****###******#*******#*###***=---------:::::---:--::::::::::::::::::::::::::::::::::::::::::::---:-:----:::::::::::::::::::::::-::---------------------------------------------------------=-----------------------------===-----------------------------=-=----------==========================-===========------==-==-===================================
++++++++++++++++++*####*******++++++*++++++++++++++*******##*****##***#*****#*****+--::------:-::::::----:::::::::::::::::::::::::::::::::::::::::::-:--------:-:::::::--::----::---:---------------------------------------------------------===-==----=--------------------=----------------------=------=-=-=----=--=---=====--=================---==----===-------==--=-===============-====================
+++++++++++++++++**#####**++**++++++++++======++++++*****####***#*#**********##**#*+***==---=+-:::::::::::::::::::::::::::-::-::::::::::::::::::-:-:---------:::::::::::::-::----:-:------:-::--:-::------------------------------------------===-==----------------------------------------------==========--=======--=======-===---===============-------------===============================================
++++++++++++++++++*#####**+++****++++++=+++==+++++++++******##********#*****#****#**#**********+--::::::::::-::-:-:-:--::-:-::-:::::::::::::::::::::::::::::::::-:-::-::::--:--:::-:--::--:::---::::-:--------------------------------==---=---------=----------------=--------------------------===========================-=-=-=--=======================-====================================================
++++++++++++++++++*#####**++++***+++++++++++++++*****+*******####*#**#********###*######***#**#**-------::::---:::::-------:::::::::::::::::::::::::::::::-::-:-------::::--:-------:--::-:::--:--------------------------------------==-------------------------===-===--------------------------==============================================================================================================
+++++++++++++**+***####***++++***+++++++++++++++**************##******#****############***********=---:::::::-:::::---:-----::::-----:---:-::::-::::::::-----:-:----:-:-::----:---------------------------=------------------------------------------------=++---=--=--===---=-------------------====-========================-======================================================================-==========
++++++++++++****#####*****+++++*+++++++++++++++++**********##**##****###***####**#########******##*+---------:::--------------------------------:----::-:::-------------------------------------------------------------------------------------------=#+===*%#+===-==--------=-----------------=============================-===================================================--====================--=======
++++++++++++****####******+++++****++++++++++++++*****#***###**##*****##**********########***##**##**------::-::------------------------------------------:::----------------------------------------------------------------------------------------=+#%+==+#%%#=======-----==-----------=-----=--========================================================================-===-----====================--======
++++++++++++**#####*#****+++++***++++++++++++*+*+*****########*###****#*******##**#######*******#####=------------------------------------------------------------------------------------------------------------------------------------------------+*#%*+*%#%@%===============-------------==-==========================================================-----=-=-==-=-------------==--=-============-========
+++++++++++****####******++++****++++++++*++*###*****#*############********#*******######*****#*#####*=---:-----------------------------:-----------------------------------------------------------------------------------------------------------==-*##%%%%##@@@@%%%##*##+++=-==-----------==-====--==========================================---=---=-------====--==------==-=-=-====--========-============
+++++++++++****###*******+++***+++++++++*++**######*#*######*#########****###*****#**####*****####*##**---------------------------------:-----------------------------------------------------------------------------------------------------------===+#%%%%%*%%%@@%%%%%%%%%%%#*+========---==--==================================---=============-=---------=============--=----=---=-----=======--===========
++++++++++*****####******+++**++++++++++*+***##########################*##*###****#######******####*###+---------::-------------------:-:::-:----:----------------------------------------::-------------------------------------------=--=----------=+%%%%%%%%#%%@@@@%%%%@@@@@@%%%*###+-====--========================================---====------------------=--=-==---------------------========-=====-=====
+++++++++******###*******++**++++++++++++*****#######################**########****##*###*****##*####***=-------------------------::--::-::--:-:----------------------------------------------------------------------------------------------------=#%%%%##%%%%%@@@@@@@%%%%%@@@@@@@%###*#*+================================-===============---=------------------------------------------------=-==--=-=--=====
#*+++++*********##*****+++**+++++++++*+++**##########################**##**####****#*#####**#**#####****+--:--------------------------------------:---------------=-----------------------------------------------------:------------------------+#%%######%%%@@@@@@@@@@@@%%%@%%@@@@@@@@@#%#*++===========================================---------------------------=-=----------------------------=---========
###*+++*******#*###***++++++++*+*+**+++*+**#############################***######**##########**########*++--------::-:--------------------------------------------------------------------------------------------------------------------------+#%%########%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@%#*+*++=======================-=============-==-------------------------------=-----------------------------------====
####*******+**#####**+++++++++**+++++**+++*###########*#**##############*#*###################*#########***==----::-:::::-----:-------:----------------------------------=----------------------------------------------------------------------=*%**##%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#**++=+====================-====---=--======---------------::::::------------------:-:-:----------------==---=-=====
######*#*++++**###**++++++++++*++++++*++++**######################################****########*##*########**=----------:-------==---::-----------------------------------------------------------------------------------------------------------***##%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##*+=+=======================---------------:----------::::::::::-----------------------------------====---==-====
#######**++++***###+++++++++++**++*++++++++*########################################*###########*****######***+*=---------==+++++++--::---------------------------------------------------------------------------------------------------------=#*###%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#+*=============---=-=-----------------:------::-:::::::::::::------:-----::--:-------------=--=======--=======
#######**++++*****+++++++++++++**+*+++*++++*##################################*####*#*########***#****#####****+*+----=====+++==+++++=------------------------------------------------------::-------------------------------------------------+**#####%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*+*+=========-=-------------------------------::::::::::::::::-::------:-:--:------------=--======-==========
########**+++*****+++++*+++++**+++++*+++++*########################################***#*##******#*#****#*###******+=++=====+++=++*++++*+=---------------------------:--:-------------------::::-:--------------------------------------------=+#**####%%#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%##*====----=-------------------------------:::::::::::::::::::::--:-------:---------=-=--=--=--=--=========
#########****++*+++++++++****+++++++++++++*###################################*####****######***###*#**#######*****+=+==++++++++***+****+=--------------------------:-::--:::::----------:-:::::::-:-------------::------------------------=+****#%%%%%#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#%*+====----------------------------------:::::::::::::::::------------------------------------=----======
#########****++++++++++*****+++**####*+++**#*###############################*#**####*######*#*#*##*###*######*##***+=+=+===++==+******+***+-----:--------:-:-::::::::::::--::-:-----:--:-::::::::::-:-::::---------------:----------------=***##%##%##%#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#***#===----------------------:---------:--::::::::::::::--------------------------=-----====-------=====
###%######**++++++==+++*****++++*####**+*****############***##################**###########**##############*###*#****+++===+==+***+********+=-------:---:::-:::::-:::-:::::::::::-----::::::::::::::::::::::-----------------------------****###%%#%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*=====----------------------------------::::::::::--:----------------------------=-==========-----=====
##########*+++++++++++****++++***###%#****+**##########*****#################****###########*#*#############*####****+++++++==*++***********++---::::::::::::::-::--::::::---:::-::::::::::::::::-:::::::::-----------------------------#**#%#####%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%*====------------------:----::----:-----:-::-:::::-----------------------------=============-----=====
######%###*++++++++++++++++++++**##%##**+*****##########****################****##############**#############*####****+++++++++**********+**+++--::::::::::::--::::::::--::::::::::::::::::::::::::::::------------------------------==***#####%%#**#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*+====--------------:::-::::::::-::-:----------------------------------------=====-======--------=====
###########*++++++++++++++++++++####%#*********#########*##################****################**#################****++++++++++**********+**+++--:::::::::::---::---::-:---:-::::::::::::::-::::::-:---------------------------------*+**#%##%%%##%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*+===---------:::-----:::::-:::::-----:-----------------------------------======---=--===----=-======
##%##########*+*+++++*+++++++++**#####*****+***######################*#######**##################**################**#++=+++++++***********+***+=---:::::::::-------:--:-------:::::::::::::::-:::::--------------------------------=+*####%#%%%#%%@@@@@@@@@@@@%%#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%*+===-----------------::::::::---------:----------------------------------====-----------------====
##%%%##########**++***++++++++++*#####**++*+**##*######################*#*####****###############**#################*#*+++++++++*++++**********++--:-::::::::::-----------------:-::-:-----:::::::-::-------------------------------=*#%%@%#%%%%@@@@@@@@@%*+--===+*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@%%%*+===-----------:--::-::::::::::::::----------------------------------=--===-=---------------====
#%%######%##%##*****+++++++*******#####***++***#**#####################***##########*###################**#############+++++++++*+++************+==----::::------------------------------::::::::::::------------------------------==*@@@@%%%%%@@@@@@%%#+==----===*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%#**+=---------------------------------------------------------------=--===-=----------==------===
##%%####%%##########*+************######**********#####*################**#*########**######*############**##############*+++++++*****************+=------------==-=------------------------------::--:-----------------------------=*#@@@%%%%@@@@%++++===-----===*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%#%%%%#*====---------------------------------------------------------------------------==-=----=--===
####%#%%#%##%%#########***********#####**#********####*##*##**###########*##*######*#########**#########*##################**++********+******+***+==-------====++=+===-------------------------------------------------------------=*%@%%@@@@@%%*+=====-------===#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%#%%#*+==-----------------------------------------------------------------------------------------==
##%#%%%#%##%%%##########***********#*****#********####***###***##############################***####*##*##################*##*******++*+************+=--===+++=+++++++++++==----------------------------------------------------------*##%%%@@@%*=---------------+%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%###**++==----------------------------------------------------------------------------------------===
#%%%%#######%%%##########**********#*************#*##***++*##**##############################*#*#####*#**#####*###**###########*****++++++***********++++++++++++++++*++++*++=------------------------------------------------------------=+**+==---------------+%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%##***=====-----------------------------------------------:---------:------------------------------==
################%%%#######************************#**+******#########################*########*######**##########*#*###########**#*+**+++******+*******+++++++++++++++*++++++===--------:---------------------------------:-------------------------------------#%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#**+++==+==-------------------------------------------::-:-------------::--------------------======
##%##############%#%#######**********++**+***+****#****+**+***################################*##########*########################***********************++++++++++++**+++++++++=--------------------------------:-:-------------------------------------------*#%%%@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@%#*#+======--------------------------------------------------------::::-:-------------------========
#%%##%%##########%%##%%%%#####**+**+*++++**+**++****+++***+******#####################*#*############***############################************+**********+++++++++++++*+++*+++++---------------------------::-::--------------------------------------------=##%%%@@@@@@@%%%@%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@%%****+++===------------------------------------------------:::::-:------------------------========
#%%###############%%%%%%#%%%%%#*++*+++++++****++**++*+++*********####################********##########*#############################********++**++**********++++++++++++++++*+++++---:-----------------------------------------------------------------------*#%%%%@@@@@%%%%%%%@@@@@@@@%%@@@@@@@@@@@@@@@@@@%%%%%#***++====----------------------------------------------:-------------=---=---------===========
####################%%%#%%%%%%%%******+++++***+**++****++********######################********#*#######***############################***++++++*******+*******+++++++++++++++++++++=---:---:::::--------------------------------:--------------:------------=%#%%%@@@@%%%%%%%%@@@@@@@@%%@@@@@@@@@@@@@@@@@@%*#%%####+==----=--------------------------------------------------------=------=-================+=+
##########%###%%%%%#%%%%%%%%%%%%%#**+++++++********+******+******######################****##***#######**##############################****++++++****************+++++++++++++++++++++==-----:::--:::::-------------:-::---:-------::::::::::----------------=#%%%@@@@%%%%#%#%%%@@@@@@%@@@@@@@@@@@@@@@@@@@%%%#*#%##+*++==-----------------------------------------------------------=========+++++++=+++++++++++
%%%#########%%%%%%%%%%%%%%%%%%%%%%%#**+*++++++******+*********####*######################*######**######################################*+++++*+*+++*****++******+++++++++++++**+++++++-----:::-:---::--::------------:-::::-:--------:::-::::---------------+%%%%%@%%%%###%#%%@@@@%%%%%%%%@@@@@@@@@@@@@@@@%##+*+**++=---=----------------------------------------------------========++++++++++++++++++++++++++
#%%%%%#%####%%%%%%%%%%%%%%%%%%%%%%%%###***+***+*******#********##########################*#########*######*#*############################***+++++*+++******************+*++++*++*****++++-----:--------:------:---------------------------------------------+%%%%%%%########%%@%@@%####%%@@@@@@@@@@@@@@@@@@%##++++*++==-==------------------------------------------------=======+++++++++++++++++++++++++++++*+
##%%%%%%%%%#%%%%%%%%%%%%%#%%%%%%%%%%%%##**#****++*****####*******##################**#**##*################**###############################***+****+*+********************************+*+==------------:---:---::------=--=-------------------------------=*#%%%%%#######%%%%%%%%%####%%%@@@@@@@@@@@@@@@@@@@###+==+===----------------------------------------====+=======-==++++++++++++++++++++++++++++++++++
###%#%%%%#%##%%%%%%%%%%%%%%%%%%%%%%%%%%##*****#***+****#*#********#####################**#*##*##############*###################*#*##########******++++*****++*+***************************=+=---------========================----------------------------+#%%%%%#####*#%%%%%%#%###%%@@%%%%%%@@@@@@@@@@@@%%%%%**+==+===--------------------------------======++++++++++++++++++++++++++++++++++++++++++++*+++++
##############%%%%%%%%%%%%%%%%%%%%%%%%%%%###***#***++***************#####################*******###*#####%#########################*###########****++++++*+*++++***************************+*+==---=================================-------------------=-=*#%%%%%#%######%%####%#%#%%%%%#%%@@@@@@@@@@@@@@@@%@%#*++==++======----------------------=---=++++++++++++++++++++++++==+++++++++++++++++++++++++*****+
#########%###%#%%%%%%%%%%%%%%%%%%%%%%%%%%%####**#*********#*********#**########*##########*****################################*##*#############***++*++++++****************************+*++*+++++===============================+====------------------**##%%%%#%##################%%%%@%@%@@@@@@@@@@@@@@@@@%%*=+=====--------------------===+======++++++++++++++++++++++++=+++=++++++++++++++++++++++**+*+*++
#################%%%%%%%%%%%%%%%%%%%%%%%%%%######*******+************#######################*****###########################%######*#############***+++++********************************++++*++++++=+==========================+++++======-=---------=**##%#%####*###*####%###%#*###%@%%@%@@@@@@@@@@@@@@@@@@@%+*+========-----------====+++++++++++++++++++++==++++++++=+++++==++++++++++++++++++++++**+*+***++
#####################%%%%%%%%%%#%%%%%%%%%%%%###%%#********+*****++****############*#############**###########################%#####################***++++***************+*************++*++++++++**++=+===============+==++=====+++++++=============+*####*#####**#****#####%##%#%%@@@@@@@@@@@@@@@@@@@@@@@@@@@%#*===========-====++++++++++++++++++++++++++==++++++++=+===++++=+++++++++++++++++++++********+++
########################%%%%%%%%%%%%%%%%%%#%%###%%###********+*******#***#####################################################%######################****+*******************************+*++*++***+**++++=======++===+===++++++==++++++++===+++++=+++*#########*#****###%#####%#%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@**++=++++=+++++++++++++++++++++++++++++++++++++++++++======+++++++++++++++++++++++****+***++*+
##########################%%%%%%%%%%%%##%%%%%###%#%######*******+++*++*******#######################*#######*##################%######################********+***************************+++*+++****+****++======+++++++====++++++++++++++++=+++++++*####***###***###*#####%#%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#*++++++++++++++++++=======++++++++++++++++++++++==========+++++++++++=++++++++++*+****+++**
#########%%%###%#######%###%###%%##%%%##%#%#%%%###############***#*******+******####################***################################################*****+*********************************+++++++********+++===++==========+++++++++++++++++++++*####*#####**#*#**######%%@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@%*++++++++++++++====+++++++++++++++++++++++++++++++==+++++++++++++++++++++++++****+**+***
############%######%%########%##############%%%%%%############************++****#####################******##############################################******++***************+++++**********++**++++*********+++++++++++==++++++++++++++++++++++*#######*#####*########%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%@%#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++****++++*******
###########%#%%%%%%%%%%##%##############%###########%##############*************##########*###############**###############################################*****++++++***++*****+**++++***+*+**+++**+++++**********+++++*+++++++++++++++++++++++++++#################%#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#***++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*+++*+***+++++****+
##########%#####%%%%%%%%%%%%##%#%%%#%#%%%###########%%################*###**********########***##############**###**#########################################*****++++++++++++*******+++++++++++++++++++++*********************+++++++++++++++++++++%###*#%#####*##%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@%%%%%%%#####*+++++++++++++++++++++++++++++++++++++++++++++++++++**++++++++++**+**
####*##########%###%#%%%%%%#%%%###################%#%%#####%##%##############**********#######***#############********#############################################***++*++++++++++****+++++++++++++++++++++++********++**+*****++++++++++++++++++++#%##*%%%%######%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%##%%##*++++++++++++++++++++++++++++++++++++++++++++++++++++++++***+***
##############%%####%#####%#%%##%%#%#########################%%#################*#**#*****########################*******############################################******+*+++++++++***+++++++++++++++++++**++*++**+++**********#*+++***++++++++++#%%###%%#%####%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%@%%%%%%%#*+++++++++++++++++++++++++++++++++++++++++++++*++++*+**++***
############################%%%##%########################%####%###############**#*#*********#######***#############********##########################################********++++++++++*++++*****++++++***++*++++++*****+*++**#%%%%######***+++++++#%%%#%%%%%#%%%%%@%%@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%@@@@@%%%%%#*++++++++++++++**++++**+++*++++++++++*+*+++++++**++*+****
#####%#############################################%########%%%%##%##################***********#*************########*****#*############################################**********+++++++++++++*+***********++*+++++++++****##%%%%%%%%%%%%%%%%%%%###%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@%%%%@%@@@@@@@@%%%*++++++++****+*++++++++++++++++++++++**********+*******
#####################################################%#########%%%#%%#####%#############*****++*****************#########**###########################################**#####**********++++++*+++++***+********+**+++*++*+**%%%%%%%@@%%@%%%@%%%%%%%%%%%%%%%%%####%%@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@%%###%@@@@@@@@@@%%#*+++++**+**++++++++++*+++++**++++********************
########################################*#######################%%%%%%###%########%###########*********************###########*##***##########################################************++++++++++********+**+*++**+*++**##%%%%@@@@@@@@@@@@@@@@@@%%%%%%%%%%%##%%%@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%@@@@@@@@@@@@#*++****+**++++++++*+**+********++******************
######%###################################%##############%#%###################################**************************##################*#####################################*************+++++++++***++******++***++**%%%%@@@@@@@@@@@@@@@@@@@@@%@%@@%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@%%%%@@@@@@@@@@@@@%***+++++++++++************************************
*######%%############################%################################%%##%#########################*************************#*#**####*########################################*#####*##******+***++++++++++++++******++++#%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%@%%%%%####%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%@@@@@@@@@@@@@@@@@@@%**+***+*****************************************
**###****####################***#########################################################################***********#*###*#####***##**###*#****#**##########*##################******###*******************+++*+*+********%#%%@@%#***#%%@@@@@@@@@@@@@@@@@@@%@%%@######%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*****+++***************************************
#**************###############***###########################################################################************************#####**********#*##**#######***#######**####*#*#******##**********************+++*****#%@@@@#**********%@@@@@@@@@@@@@@@@@@@#######%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@%%#*******************************************#
*####********##*#*##*#*##############****##*##################################################################*********+******************###***********##****************######****#************************************##%@@@%*************##%%%%%@@@@@@@@@%%###%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%#*****#**************************#*#**
***#####*#******###*******#############**********###################################################################******************++++++**#*#*##*************************#####********###****************************##@@@%#********************#%#%%%@%####%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%##*#**************************####
****+****#***********#*******############*****************#################################################################**#**************+*+*************************************************************************##@@@@#*************************#%####%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%####****************#**#*****###*
****+++**********************#*****#*##********************+***###################################################################****************++++***++*++*********************************************************###@@@#*************************%####%%%%@@@@@@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#*********#*###*********#####*
*******++*****++****++**********************************##******##############################################*##########################**************++***********+***++*******+++**********************************#*#%@@@************************%###%@@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#********###*#*******########
****#******************+***************++++********#***************##**############**##*#####*####*#****############################################*******#*********************++++++++*****+++++***++***************#%%@@@*********************##%%%@@@@@@@@@@@@@@@@@@@%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%####*#######**##############
************++****************+******++++++++++**************************++***####********##############**#****###**########################################*****************++++++++++++++++++++++++*+*+++++++*****+###%%@@@%***+*+*++*******#%%%%%%%@@@@@@@@@@@@@@@%%%##*****#%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@@@@@@@@@@@%@%#########**###############
#*##*****######*#****************+++****+*********++**++++++++***************+***********###############*#*********########################################*#*#*****#****#***********++++++++++*++++++++++*+++*******%#%%%@@%#+++++++++***+**#%%##%@@@@@@@@@@@@@@@%#*************#%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#%@@@@@@@@@@@@@@@%##########################
*#*####*****####*#*#####*********##**++++**+**************************++++*+*******+++************#*#########***#************####*############*##***#####****###***************#****************++++++++**+++*+******#%@%%@@@#**************%%#%%%%@@@@@@@@@@%%%#*****************####%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@%%@@@@@@@@@@@@@@@@%#########################
#####*#######***##**#****###***************#############*************************************************#*##########****#***#####******#*******####*****************#*************************************+*+********#%%@@@@#*************#%#%%%%%@@@@@@@%#************************##*###%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%@@@@@@@@@@@@@@@@%%###################*###*
***######****************************#****##################*****+***********************************************########******##***************####***********************##******************************************%%@@@%%%%%#*********#%#%%%%@@@@%#*#********************#**********######%%%%@@@%@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@%#%@@@@@@@@@@@@@@@@%%%%###############*******
###*#*####***********++***************###########%%#%%%###%#####*************************************************++**************#*#**************#*###*#**#*****##**********+++++*****************************+*******#%%%%%%%%%%#*********%%%%@@@%%####*****************++******************#***##%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##%@@@@@@@@@@@@@@@@@%%%####*#*#######*####*##
##*#######*#######********++*****################%###%%%%%%##%##*************************************************************++**********************************************++++++****************+++++++**+**+********#%%%%@@@%%%*********%@@@@@@@%#**+**********+++++*********************************###%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%##%@@@@@@@@@@@@@@@@@%#%###*#*######**##*##***
*###****########%%%#********#######################%%#%%%%%%%###********************************+********************+****+********++******+++++************************************************+++++++++********+*******@%%%@%%%%%*********#%@@%%@@%******++++++++++++++************+++*++*****+*********#**##%@@@@@@@@@@@@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@%###%%%@@@@@@@@@@@@@@@%%#%###*########**######*
############%%##%%####**##*****##################%%%##%%%%%####*****+***++++***+*+++++++****++++++++++++++*+++++++++++************++**+++++***+++++++*+++++*******++******************++**++*+++**************************%%%@%%@%%**********%@@@@@@%********************************************###*#*##******#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#*##%%@@@@@@@@@@@@@@@@@%%#%##**#######**#######
#####%%######%%%%%%%###%######*###########%#######%###%%%%%%###*****#****#***+*++++*++*+*****++*+++++**+*******++**********+++++***++**++******++++****++***+********+++++++++*********+**+******#**************************%%@%@%%***+***+***@@@@@@@*****++*******************************++**************##**#%@@@@@@@@@@@@@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@%##**#%%@@@@@@@@@@@@@@@@@@%%###**********#*###***
####%%%%%%#%%%%%%%%%%##################*##%########%%%%#%%%%%#####*##%##*****************************************##*#####**************************************+*********#**********+*****************************************#%%%#******+****#@@@@@@#*********+**************************#**********#*#*#******#%@@@@@@@@@@@@@@@@@@@@@@%%@@%%@@@@@@@@@@@@@@@%########%%@@@@@@@@@@@@@@@@@%%%%##**###*##########*
###%%%%%%%#%%%%%%%%%##%%############%######%#%%#####%%%%%%%%%%################*#*************#**********##*#***########****######***#***###*###******#**##*#*#*******#***#*****###*********#**#########*************************##*****#***++**%%@@@@%************************####***###*###***#*##*#***###*##*##%%@@@@@@@@@@@@@@@@@@@@@@%@@%@@@@@@@@@@@@@@@%#########%%@@@@@@@@@@@%%@@@@@@%#############****##*
##%#%%%%%%%%%%%%%%%%%%%%#############%%########%%%%%#%#%%%%%%%####**#############************#*#######**###############***#########*#*****#*#***#*#############*#***#####*#*##*##*#***#########**########****#***####*****#************##****+*#@%@@@@#****######********###*#*#*##############**###############*#%%@@@@@@@@@@@@@@@@@%%##@@%@@@@@@@@@@@@@@@%#####*####%%@@@@@@@@@@@@@%@@@%@@%%%##***************
##%%%%%%%%%%%%%%%%%%%########################%%#%%%%%%%#%%%%%###########%########*****#*##############*##*######*#############*#*#####*****##########*###*#*###########*#*######*******#########***#######******#*#########***#****##**####*****#%%@@@%****######**###****#######################*##*#############%%%@@@@@@@@@@@@@@%%#*##%@@@@@@@@@@@@@@@@%#*#########%%%@@@@@@@@@@@%@@@@@%%@%###***************
##%#%%%%%%%%%%%%%%%%####*###########%#%%%#%###%#%%%#%%%%%%###############%##%%##*#*#******######%%#######**************************+++***+++++******#*####*####***************+++++***************************##***########***#**###****#**#***##@%@%@%%******####*####***###*###*#****#######*********###***#*####%%%@@@@@@@@@@@@%#######%@%@@@@@@@@@@@@%##########*#%%%@@@@@@@@@@@%@%@@%%%%%%%###******+******
##%##%%#%%%#%%%%%%%%########%########%#%#####%%%%%##%#%%%%%%##########%%%%##%%%#####**####################*******+++***++++*****+**+**************#####*######****++++*++*++++++++**+*+********************+++******#*#*****#*********#****#****#%@%@@%@@%*********#**************##***#***#######*#**##*********###%@@@@@@@@@@@@@%####**#*#%%@@@@@@@@@@@%###********#%%%%%@@@@@@@@@@@@@@%%##**##**#***+*++*****
###%%%%%##%%%###%%%###########%########%%#%%##%%%%##########################%#####******###*#################*****#******+++************######*################*****++++++++++++*+***++++++*++++++*****+****++++*********************************#%%%@@@@@#**************+*****************************************##%@@%@@@@@@@@%##*#*****##%%@@@%@@@@%@@%**********#*%%%%%@%@@@@@@@@@@@@@%%#***#**************
####%%%%%%##########%%%#######%##################################################*#*######################################*+*********###****#******#########****#*********+++***++*********+++++++++++++++++**+++***+++++*+**++**++**+*+++**+*****@%@@@@@@%#*+****+***+*+++*++*+***********************+*++**********#%@@%@@@@@@@@@##**+****##%%@@@@@@@@@@%************#%%%##@%@@@@@@@@@%@@%#%###****#**#*******
#############****#####*###############%%########*****#*#**##***###***#######****##****#*##*#######**##*####%%%############*******+*+*+*******************************+**************+*********+****++*********+**+++++*+++++*+**+++++++++++**++***#@@@@%@@@%#%#*********+++**+++*********+***+********+******+**+*****#%%@@@@@@@@@@%##********#%%@%@@%@@@@@#**********##%%%%#%@@@@@@@@@@%%%@@%%*##**************
*#***########************##*######*############*****+***#********************************#*****###*******#**###*#########*****++***+++*****+++++++******++*+*++++**+***++**+****************+********+++******+++***********+*****+++++++***++*++***#@@@%%%%%%##**********+*********+++*+*****+*****+***++***++*****+*##%%@@@@@@@@@@%##********#%%@@@%%@@@@@#**********#%%%%%%#@%@@@@@@@@%%%%%%##***************
*#****************************#####***#####*+++***********************+*****+*****************************###**###*###**#******###***********+++++++++****+**+++++***++**+*****++++*************+*+**+*******************++++++***********************%@%%%%%%%%%%******++*+********************************************#%@@@@@@@@@@@@#*********#%%@@@@@@@@@@#***#*****##%%%%%%%%%@@@@@%@@%%%%%%%#**************
***##******+***++***++++++***##****++***************++++++**++**+++++++++++++++++++++********+*****************+*+*+++++*+++++++++***+++******++++++++******+*++***+*+++++++++++++*++++++++**+++*++++++++++++*+*++++++++++++++++++*++***+**+++**+++***#%@%%%%%%%%%********+***+*****************************************##%@@@@@@@@@@@@***********%%@@@@@@@@@@%#********###%%%%#%#%@@@%%%@@%@%%%%#%#*##*********
****************++*********************++++***++++*+***++*******************++++++++++**++*******+++**********+++++***+*++++++*****+++++++++*+*+++++++++**+++*****+*++++++++++++++++++++++++++*+****++++++++++*+++***********+****+++****+++**+***+*+**#%%%%%%%%%%#******************************************************##%%@@@@@@@@@@%*#********##%@@@@@@@@@@@%#*********##%%##%#%@@%%%%%@%%#%%#########******
**********+****+*****************+++**+++*++=++=+++++*+**+**+******************+++******************+***********++++*+++++++++++*++*+++++++*++++++++++++++**+*****+*++++++++++++++++++++++*++*++**+****+******+********+****************+*++***++++++***%@%@%%@%%%#**********+*******#**************#*********+***********#@@@@@@@@@@@@@%*#********#@@@@@@@@@@@%%%**********####%#%#%%%%%%%%%%%#%%##*####*##**#*
****++******************+***********+++*++++++++++*******+*+********#***********+*+*********++*+*****+*+*******++++++*++++++++++*+++**+**++++**+*++++++++++****+++**++++++++*+++++++**+++++*********+*****************************++++++*******+++++*****#%%%@@%%%***********+*****************+************++++**********#%@@@@@@@@@@@@%*********#%@%@@@@@@@@@%%%***********##%%%%#%%#%%%%%%%%############*####
#***************#**************++*+*+*+*+++*++++++++*+****+++**#***********#***********************+***+++*****+****+++*++++++++++*******+*+*+++++****+********+**+++*****++********+*+***++******++*++******+*******************+++++*+*******************#%%%%%%***********+**********+*******************++++****+*+***#%@%@@@@@@@@@%#**********#%@@@@@@@@@@%%#*************######%%##%%%%%##################
*******************#***++++*+***++++**********+++++***************#*#*##***#**********************++*+***************+++++++++++++++**#******++++**************++++++++******************************++*****************++**++*+*+++++*****+******************%%%#*++*****************++++***+**+++*++*******+++++***++***#%%%@@%@@@@@%#************#%@@@@@@@@%%#***+*************#########%%%%####**###########
#*****************###***++*+******+*******+*+***+++***##*******############**#*#***************#**+**+***************+++++++++++*******##**##*+********#*#*********+++++*****************************+++*+*****++++**+**+*+++++*+++******+***+********+++*++****+++++++++++++++*+*+****+**+++++*+++**+****************+***#@%@@@@@@@%##*************#%%@@@@@@@%#**********+******#*##########%#%################
#************##*#*#####***#***+*+*****###******+*++++*####******################**#*#********##********+***+++*++++++++*******++*+*+*****#*********+*****#*****+++++*****++*************************************++++***+*+++++++++++++**++**++********+*++++++++++****++++++++++++++++++**+++***************************#%%%@@@@@@%%#******+********#%%@@@@@@%#************+*****#**########*#################**
##**####*#****#*############*#*******#######*##***+****####*#*######################**####*#****#*#****+*+++++++++++++++**********++*+******#**++*+***+*********************+++***********+****+++************+*+*++**++++++++++*++++**++++**+***********+++++++***+*+++++++++++++++++++++**+***+********+****+********#%%%%@@@@%%###***************%%%@@@@@%#*******************########*#######*#######*##****
######**##############%######***********#######******##*######*################*#########***************+=+++++++++++**++++********++************+**+**+++++++++*******++*++++++++**+++++++++++*++++++*++***+++**++++++++++++++++++++++++++*+++*****+***++++***********+*+**+++++++**++++++++*************************#%%%@%@@%%#**************+***#%%@@@@@@##******************##*###*#################****#***
########*##############%#######*********#######***#####*#*###*#*########################***************++++++++++++++++++*+*+******+*+*****++*+*********++++++++*+******+++++++++++++++++++++++++++++++++++++*+*++++*++++++++++*+*+++++++++++*****+*****+**+********++********++++++**+++**++*******+*+*************##%%@@@@@%###*************+****#%%%@@@@##**#**##*#********#####**#**#################*******
*###################%%##%########******#***#####**#######********#***####*#####**###****#***************+++++++++++++++****++++******+++***+++++++++***++++++++++++++++++++++++++++++*++++++++++++++++++++++++*++++*++++++++++*****+++++++++****+*************+++****+*+********++++***++++**+********************###%%%@@%@####******************#%%%%@@@%###******#**#**#***###**#**###########**#######******
#*####%####%%###%#%%%%%%%######*###*####***######*#*****##****+******###**#*****************+++==+*******+++++++++++++++++*+++++++*++++++++++*++++++++++*++*++*++++++++++++++++++++++++++++++++++++++++++++++++**++*++*+++++++++++++***+++*******+*********+**+*****++*******+++++++++**************************##%#%%%@@@%##*********************#%%@@%@%#**#**************************##########*#**#*###*****
####%#%#####%%#%#%%%%%%%%###############*##*#*#****+*****************************************++++++*****++++*++++*+++++++++++**+++++++++++++*++++++++++++++++*+++************+++++*+++++++++++++++++++++++++++++**+++++++++*++********+++******************++*******+**********+++++**************************##%%%%%%@@%##**####****************#%%@@@@%#****************##*************####*##***##*****#*****
##%%%#%%#%%%%%##%%%%%%%%%%###%###############*****+++****++**++++*+*++*******+****************++*+++**+***+***+******++=++++*+***+++++++++**+++++++*+++++++*****+********+*****+**+*++++++++++***++++++*****+***++++++++*+****+******+**************#*******+++************+********+***+***++***************##%%%%%@@@%##******##**************#%%%@@@%##******************#***********#*#*###*######*###******
%%%%%%%#%%%#%%%%%%%%%%%%%%%%%%##%%%##########******+***+***++++*++++*++***+*+++*++*****++******++++++****+*********++*++*++++++++++++++++++**++++*+++++*+*****+**+*********+*********+++++++++++++++**+*****++**+*+****************************+********************************++****************+*+*+*****#%%%%%@@@@%%##*********************#%%%@@@@#*********************##**###*#***#**##***####****#****#*
%%%%%###%#%%%%%%%%%%#%%%%%%%%%%%%%%%%%%%######************+**+***+++++++++++*++++********++*****+********************+******+++++++++++++*++++*++++***++*******************+*****++++++++++++++*+***+********+********************************+*+++*******************+++*++++***+***********++++***++*+***##%#%@@@@%%##*****************+****##%%%@@@%##****************************###*####**#######**###***##
##%%#%#####%%%%%%%%#%%#%%%%%%%%%%%%%#%%%######*******++**+++*++******+++++++++++++*****+*+********+***************************++++++++++++****************************+++*+++++++++++++*++++*++*+**********+*++++*+********************++++++++++*************++*******+++**++************+*++++++*+****#%%##%%%@@@@%#****************+*++**#%#%%%@@@%##*#************#**********##****##########*#****########*
###%#####%###%%%%%%%###%%%%%%%%##%%%%%%%%###******************++***+***++**+++*+**+****++++++*+**********+**#*******#***#****+++*+*+++++**+*****+*++**************+**++*++*++++++++*******+********************+********************+***+*+++++++********+****+++*****++*++****+++++*+*++*++*+++++++****%%##%%%@%####*****************+*****%#%%%%@@%%#***********#***######**#############%####################
##########%###%%%%%######%%%%%###%%%%%%%##############********+*****+**+*++++++********+**++***************#******###*##************++***********++++++++++*********+++++++++++++++++++++******+**+******************+++**+*+++++****++++++++++*******+++++*+++++++++++*+++++++++++++++++++++++++***+*#####%%%%%#*******************++++***###%%%@%@@#******#***#######*###################%%%###########%######
######%####%%##%%%%#############%###%%%%%##############**####****************+*****************#******#**################**********#*****+***++***+*++++++**+*******+++++++++++++++++++++++++++**+********************+****+++++*********+++++++++++++==+++=+++++++++++++++++++++++=++++++++++++*++**#*###%%%%%%%#***###**************+***%%%%%%@@@%#*#*#***###**############%#%############%######%%###########
#%#######%##%##%#%%####%%####################################*##*******************************#*#*###**##*#############*********#**********+*******+++****************+++++++++++++++++++++++++++++******+*******+++++*++*++++++++++++++++++++++=++++++++======+++++++++++++++++++++++***++++*+*++**#*#####%%%%%%#######*########******##%#%%%@@@###***##################%###%%%%#%####**###########%%%#%##%#%#
##%######%%%#######*###%%%#*#############%###%#############*****#**************####****####**#*#############################****##*#***#****++**+**+++++++++*+++++++++++=======++++++++++++++++++++=+++++++++++++++++*++****++++++++++++++=+=++++=====++++++==++++++++++++++++++++*+*+*+++*+++++++*****##%%%%###%%%%%%##%%#########****##*##%%@@@%##***#################%##%%#%%%#%#%%#####%%%%######%%%%%###%##
###%##################*#*#***#############################*****#********+******########**##########**###########%##%%%#######*********************++++++**+++++++++++=+++++++++++++++++++++++++++++==+++++++++*++++++++++++++++++++++++++========+++++++++++++++++++++++++++++++**********++++++++***********#####*#*****##*##*#######*#*####%%@@%%#######%%#######%#%%%%#%%%%%%%%%%%%%##%%%##########%###%#%%##
##%%#########%########*#**+**********#########**#########**********************+**######***#################%%##%%%%%%%########***************+*++***++*****+*++++++++++++++++++++++++++++*+++++=++++++++++++++++++++++=++++++++++++++++++++++++++++++++++++++++++++++++++++*+*+*++**++++++++++++++*******+**********************#####****###%%%%###################%%%%##%%%#%%#%%%######%%##############*#####
#############%%##########********####**####*##****####******************#***##**########*#*#########%########%%##%%%#%%#%#########****************+**********+++*+++++++++++++++++*+++++*+++++++++++++++++++++++=++++++++++++++++=++++++++++++=+++++++++++++++++++++++++=++++++++++++++++++*+++++++*+*++**+++**********************##**#***######*#*#*#**#######*##*#######%%#%%%%############*#*#########*#####
#############*############***********#*##***#####*****************************#**####%%%######%#%%######%#############%##%#%#############******#*************+++++++++++++++++++++++++++++=++++=++=+++++++++==+=+++==+==++++++++++++++++++++====+++++++++++++++==+++++==++=====++++===+++++++++++++++++++++++++++++***+++++++++****++**************##***+**##********#####%##%##########*####*****########*####*
#########%#########################**###******####**************************#########%%%%%%%%%#%#%%#%%#######*###########################****************************++++++++++++++++++*+++++++++++++++++++++++=+++++++++++++++++++++++=+++++++++++++++++++++++++++++***+++++++++++++++++++++++++++++++++++++++++++***+++++++***++++++++++++*+*+********************################*##*#######**#*########**##*
#####%%%%%###################**########**#*#***#*##***#*****************################%%%%%%%%#%#%#####*#****#*##################**##########*#**+***************++++++++++++++***++++++++++++***++++*****+++***++*****++***++++++===+++====+++===========++++++++++++++++++*++*++++++****++***********+*++++*++**++++++++++*++**********+****************#*******#****#***################********####*#****#
###%%%%%%%%%%#################**#############*#*************************############%#####%#%%%####%%##%%##*********###*#*#######*#*****###########*****************++++++*++++**+*+***+++++*+***++*+****+**+****+***++++**++++++++++++++=++=+====+++========+++++++++++++++++++++++++******************+++++*+*++++++++++++*+*************************+***************************###*#########**#######*######
#####%%####%%%####%##%#####################*###**********************#**#**######%%%####%#################**#*****#######***##########***#****######****#******************************+++++++++***+++++*****+**********+++*++++**+++++++++++++++++++++++++++*++++++++++++++++=+++++++++++*++++*++++++++++***********++******************###***********************************###*#**######################*###
#######%####%%####%####%########*############*****##########**************###################*#########******###########****#*****#***************#******************************************+++*+++++**++***++*****+**+++++***+++++++++++++++++++++++*+**+++*+++++++*++++++++++++++++++++*++++++++++++++++*++++++***++++**+**********************************************+**##******************#########*#*#**
################%##%%###########################*###*###**#####**#******####*#################*##****########*###******########************************+***+**********#******************+******+++***++++**+*++*******++*+++*****++++++++++++++++*+++++++++++*+++++++++++++++++++++++++++++++++++++++++++++*++++*****+***+++************##************+***********************+****************#####****###*##*
#######%%%%%#####%###%%######*##############################****#*####*#####################*##*#######****#*######***#*######*********************************************++********+**********++**++*++++*++******+++++++***+*+++++++++++=+++++++++++++++++++++++=++++++++++++++++++++++++++++++++++++++**+++++****+++++++*******+*+*****************+************************************###***##************
How to prioritize next steps when developing for a new startup.
Software Developer's Guide for Early-Stage Startups

In the early stages of a software company, as I mentioned in the Founder’s Priorities guide, the goal is to fail fast and fail forward.

In business, there is a choice between speed, quality, and price.

Startups have to move fast, especially early on, and there isn’t an unlimited budget. So naturally, quality is going to suffer.

In the beginning, since the company’s priority is speed and cost effectiveness, as a developer, you have to make decisions on how to deliver the product to users in a way that works well enough to solve their problem and get accurate feedback for the stage of development you’re in.

There are 3 main stages of product development.

  • .
    Stage 1: Prototyping
  • .
    Stage 2: MVP
  • .
    Stage 3: Product-Market Fit

I’ll be going through each of these stages to provide helpful tips for both non-technical founders and developers to keep in mind.

Initially, you’re building for short term effectiveness rather than long-term scaleability and quality which is most evident in Stage 1: Prototyping.

Stage 1: Build a Prototype in Days, not Weeks

Your goal in this stage is to build a demo to put in front of users as fast as possible.

What this looks like:

  • Clickable prototype in Figma
  • A combination of low-code tools or AI that can help to build a prototype in a day

For my software, I built a basic front-end in Webflow, connecting the Webflow CMS to Notion with Whalesync to use Notion as a backend. It took me 2 days and was enough to not only demo but be used and paid for by my first customer.

Common Mistakes

  • Overbuilding before showing users
  • Thinking you need an MVP before getting feedback
  • Refusing to let go of ideas users clearly don’t want

Speed beats polish.

Your only job is to create something good enough to start conversations.

Stage 2: MVP — Build Just Enough to Launch

After the prototype has validated interest from potential customers, it’s time to build something users can actually use.

What this looks like:

  • Building a minimally viable product in weeks, not months.
  • Get your first real commitments (ideally paid)

For my first product, it took me about 8 weeks to finish the MVP. It was my first time building front-end and back-end functionality, so progress was slow, but I wanted to learn.

With my development skills today, I’d be able to finish it in a week and with greater quality. This is why having an experienced developer is so important.

After it was complete, I transitioned Aebly Studio over from using the prototype to using the MVP and had a paying user day 1.

What to Prioritize in MVP Development

  • .
    Do things that don’t scale
  • Manually onboard users
  • Process requests by hand
  • .
    Create a 90/10 solution
  • Focus on what matters now, not what will matter at scale
  • Cut scope aggressively: limit by user type or feature set.
  • .
    Choose tech for iteration speed
  • Use what you’re productive in, not what’s cool
  • Rely on third party tools (Stripe, Firebase, Webflow, etc)

Stage 3: Launch — Iterate towards Product-Market Fit

Now that the MVP is live, the real work begins.

What this looks like:

  • Use data and feedback to discover what people really want
  • Find the core experiences that keep users coming back

Prioritize Insights: Combine qualitative and quantitative data

  • Set up basic analytics with Google Analytics or PostHog
  • Talk to users often
  • Ask: Why are people staying? Why are others churching?

Prioritize Launching

  • Continue to follow the mantra fail fast fail forward and keep building new features and listening to feedback
  • Build to learn not to make things perfect, each launch teaches you what matters

Learn to Balance Fixing and Building

  • Technical debt is okay at this stage
  • Don’t over-prioritize bugs that don’t block usage

Final Takeaway

Startups move quickly. Your job as a developer is to match that speed with small shortcuts, user empathy, and relentless iteration.

This wraps up our third guide following the prioritization manifesto. Our hope is that now you have a better understanding of how to properly think through what to prioritize in the early stages of building a software.