Project Final Out
Project Final Out
1. INTRODUCTION
1.1 Overview
1
statement. When the system grows complex, more rules need to be written. It can
quickly become unsustainable to maintain.
2
will come about through systems that combine representation learning with complex
reasoning.
3
1.3 SOFTWARE SPECIFICATION
The Python language has a substantial body of documentation, much of it contributed by
various authors. The markup used for the Python documentation is restructured Text, developed by
the docutils project, amended by custom directives and using a toolset named Sphinx to postprocess
the HTML output.
This document describes the style guide for our documentation as well as the custom
restructured Text markup introduced by Sphinx to support Python documentation and how it should
be used.
The documentation in HTML, PDF or EPUB format is generated from text files written
using the restructured Text format and contained in the CPython Git repository.
Introduction
Python’s documentation has long been considered to be good for a free programming
language. There are a number of reasons for this, the most important being the early commitment
of Python’s creator, Guido van Rossum, to providing documentation on the language and its
libraries, and the continuing involvement of the user community in providing assistance for
creating and maintaining documentation.
The involvement of the community takes many forms, from authoring to bug reports to just
plain complaining when the documentation could be more complete or easier to use.
This document is aimed at authors and potential authors of documentation for Python. More
specifically, it is for people contributing to the standard documentation and developing additional
documents using the same tools as the standard documents. This guide will be less useful for
authors using the Python documentation tools for topics other than Python, and less useful still for
authors not using the tools at all.
4
If your interest is in contributing to the Python documentation, but you don’t have the time
or inclination to learn restructured Text and the markup structures documented here, there’s a
welcoming place for you among the Python contributors as well. Any time you feel that you can
clarify existing documentation or provide documentation that’s missing, the existing
documentation team will gladly work with you to integrate your text, dealing with the markup for
you. Please don’t let the material in this document stand between the documentation and your desire
to help out!
All files use an indentation of 3 spaces; no tabs are allowed. The maximum line length is 80
characters for normal text, but tables, deeply indented code samples and long links may extend
beyond that. Code example bodies should use normal Python 4-space indentation. Make generous
use of blank lines where applicable; they help group things together.
A sentence-ending period may be followed by one or two spaces; while reST ignores the
second space, it is customarily put in by some users, for example to aid Emacs’ auto-fill mode.
Footnotes
Footnotes are generally discouraged, though they may be used when they are the best way
to present specific information. When a footnote reference is added at the end of the sentence, it
should follow the sentence-ending punctuation. The reST markup should appear something like
this:
Footnotes should be gathered at the end of a file, or if the file is very long, at the end of a
section. The docutils will automatically create backlinks to the footnote reference. Footnotes may
appear in the middle of sentences where appropriate.
5
Capitalization
In the Python documentation, the use of sentence case in section titles is preferable, but
consistency within a unit is more important than following this rule. If you add a section to a chapter
where most sections are in title case, you can either convert all titles to sentence case or use the
dominant style in the new section title.
Many special names are used in the Python documentation, including the names of
operating systems, programming languages, standards bodies, and the like. Most of these entities
are not assigned any special markup, but the preferred spellings are given here to aid authors in
maintaining the consistency of presentation in the Python documentation. Other terms and words
deserve special mention as well; these conventions should be used to ensure consistency throughout
the documentation:
CPU
For “central processing unit.” Many style guides say this should be spelled out on the first
use (and if you must use it, do so!). For the Python documentation, this abbreviation should be
avoided since there’s no reasonable way to predict which occurrence will be the first seen by
the reader. It is better to use the word “processor” instead. POSIX
For “restructured Text,” an easy to read, plaintext markup syntax used to produce Python
documentation. When spelled out, it is always one word and both forms start with a lower
case ‘r’. Unicode The name of a character coding system. This is always written capitalized.
6
Unix
The name of the operating system developed at AT&T Bell Labs in the early 1970s.
Affirmative Tone
The documentation focuses on affirmatively stating what the language does and how to use
it effectively.
Except for certain security or segfault risks, the docs should avoid wording along the lines
of “feature x is dangerous” or “experts only”. These kinds of value judgments belong in external
blogs and wikis, not in the core documentation.
Warning: failing to explicitly close a file could result in lost data or excessive resource
consumption. Never rely on reference counting to automatically close a file.
Good example (establishing confident knowledge in the effective use of the language):
A best practice for using files is use a try/finally pair to explicitly close a file after it is used.
Alternatively, using a with-statement can achieve the same effect. This assures that files are flushed
and file descriptor resources are released in a timely manner.
Economy of Expression
More documentation is not necessarily better documentation. Err on the side of being
succinct.
7
Security Considerations (and Other Concerns)
Some modules provided with Python are inherently exposed to security issues (e.g. shell
injection vulnerabilities) due to the purpose of the module (e.g. ssl). Littering the documentation
of these modules with red warning boxes for problems that are due to the task at hand, rather than
specifically to Python’s support for that task, doesn’t make for a good reading experience.
Similarly, if there is a common error that affects many interfaces in a module (e.g. OS
level pipe buffers filling up and stalling child processes), these can be documented in a “Common
Errors” section and cross-referenced rather than repeated for every affected interface.
Code Examples
Short code examples can be a useful adjunct to understanding. Readers can often grasp a
simple example more quickly than they can digest a formal description in prose.
People learn faster with concrete, motivating examples that match the context of a typical
use case. For instance, the str.rpartition() method is better demonstrated with an example splitting
the domain from a URL than it would be with an example of removing the last word from a line of
Monty Python dialog.
The ellipsis for the sys.ps2 secondary interpreter prompt should only be used sparingly,
where it is necessary to clearly differentiate between input lines and output lines. Besides
contributing visual clutter, it makes it difficult for readers to cut-and-paste examples so they can
experiment with variations.
8
CHAPTER 2
2. SYSTEM STUDY
9
2.1.1 DRAWBACKS OF EXISTING SYSTEM
The existing system is a time constraint; it takes a long time to analyze the
sound of the birds.
The existing system usually requires much more data. Lots of training data is
required
The existing system can take several weeks to train the dataset completely
from scratch.
10
2.2. PROPOSED SYSTEM
11
2.2.1 ADVANTAGES OF PROPOSED SYSTEM
The proposed system requires only lesser time to analyze the sound of the birds.
The proposed system can handle with less number of training data also.
The proposed system is not more expensive when compared to the existing
system models.
The proposed system may take only few hours train the dataset completely from
scratch which is much lesser than the existing system model.
12
CHAPTER 3
13
The dialog to guide the operating personnel in providing input.
Methods for preparing input validations and steps to follow when error occur.
1. Designing computer output should proceed in an organized, well thought out manner; the right
output must be developed while ensuring that each output element is designed so that people
will find the system can use easily and effectively. When analysis design computer output, they
should Identify the specific output that is needed to meet the requirements.
3. Create document, report, or other formats that contain information produced by the system.
The output form of an information system should accomplish one or more of the following
objectives.
Convey information about past activities, current status or projections of the Future.
Trigger an action.
Confirm an action.
14
1. Code Documentation
2. Data Declaration
3. Statement Construction
Coding is the most important task, which ensures the quality of the product. The product designed
should be with less complexity such as eliminating unnecessary loops, jump statements, endless
loops etc., Using enhanced methods such as functions, structures etc. help to improve the quality
of the product. It is a tool that can be used in the design and planning process, but goes further and
is more regulatory than other forms of guidance commonly used in the English planning system
over recent decades. It can be thought of as a process and document – and therefore a mechanism
which operationalizes design guidelines or standards which have been established through a master
plan process.
15
To produce well formatted output display.
⚫ Dataset
⚫ Data Preprocessing
Dataset:
In the first module, we developed the system to get the input dataset for the
training and testing purpose.
The dataset consists of 5,422 Bird Sound Classification Using Deep Learning
and can practice it on Kaggle itself.
16
Importing the necessary libraries:
The very important and great library that supports audio and music analysis is
Librosa. Simply use the Pip command to install the library. It provides building
blocks that are required to construct an information retrieval model from music.
17
When you print the sample rate using scipy-it is different than librosa. Now let us
visualize the wave audio data. One important thing to understand between both is-
when we print the data retrieved from librosa, it can be normalized, but when we try
to read an audio file using scipy, it can’t be normalized. Librosa is now getting
popular for audio signal processing because of the following three reasons.
Data Preprocessing:
18
features(class labels). We will use Mel Frequency Cepstral coefficients to extract
independent features from audio signals.
MFCCs – The MFCC summarizes the frequency distribution across the window
size. So, it is possible to analyze both the frequency and time characteristics of the
sound. This audio representation will allow us to identify features for classification.
So, it will try to convert audio into some kind of features based on time and frequency
characteristics that will help us to do classification.
To demonstrate how we apply MFCC in practice, first, we will apply it on a single
audio file that we are already using.
Now, we have to extract features from all the audio files and prepare the
dataframe. So, we will create a function that takes the filename(file path where it is
present). It loads the file using librosa, where we get 2 information. First, we’ll find
MFCC for the audio data, And to find out scaled features, we’ll find the mean of the
transpose of an array.
Now, to extract all the features for each audio file, we have to use a loop over
each row in the dataframe. We also use the TQDM python library to track the
progress. Inside the loop, we’ll prepare a customized file path for each file and call
the function to extract MFCC features and append features and corresponding labels
in a newly formed dataframe.
We have extracted features from the audio sample and splitter in the train and test
set. Now we will implement an ANN model using Keras sequential API. The number
19
of classes is 10, which is our output shape(number of classes), and we will create
ANN with 3 dense layers and architecture is explained below.
1. The first layer has 100 neurons. Input shape is 40 according to the number of
features with activation function as Relu, and to avoid any overfitting, we’ll
use the Dropout layer at a rate of 0.5.
2. The second layer has 200 neurons with activation function as Relu and the
drop out at a rate of 0.5.
3. The third layer again has 100 neurons with activation as Relu and the drop out
at a rate of 0.5.
20
Train the Model
We will train the model and save the model in HDF5 format. We will train a model
for 250 epochs and batch size as 32. We’ll use callback, which is a checkpoint to
know how much time it took to train over data.
Now we will evaluate the model on test data. We got near about 97 percent accuracy
on the training dataset and 100 percent on test data.
21
CHAPTER 4
Unit testing involves the design of test cases that validate that the internal
program logic is functioning properly, and that program inputs produce valid outputs.
All decision branches and internal code flow should be validated. It is the testing of
individual software units of the application .it is done after the completion of an
individual unit before integration. This is a structural testing, that relies on knowledge
of its construction and is invasive. Unit tests perform basic tests at component level
and test a specific business process, application, and/or system configuration. Unit
tests ensure that each unique path of a business process performs accurately to the
documented specifications and contains clearly defined inputs and expected results.
22
4.1.2 Integration Testing
Formalizing the queries, instead of writing them down in natural language, and
formalizing the expected answers as well, allows for a system that automatically checks if the
ontology meets the requirements stated with the competency questions. Thus the proposed system
under consideration has been tested by using validation testing and found to be working
satisfactorily.
23
Moreover it has been pointed out that information overload, the constraints of timeliness,
and the high human and financial costs of medical error mean that it will become increasingly
difficult for physicians to practice high-quality evidence-based medicine without the aid of
computerized decision support systems at the point of care.
The implementation of this website will satisfy the needs of company as well as customers.
The effort spent on developing this website result in success only when the system is implemented
effectively.
24
CONCLUSION
In this project, significance of management of crops was studied vastly. Farmers need
assistance with recent technology to grow their crops. Proper prediction of crops can be informed
to agriculturists in time basis. Many Machine Learning techniques have been used to analyze the
agriculture parameters. Some of the techniques in different aspects of agriculture are studied by a
literature study. Blooming Neural networks, Soft computing techniques plays significant part in
providing recommendations. Considering the parameter like production and season, more
personalized and relevant recommendations can be given to farmers which makes them to yield
good volume of production.
25
BIBLIOGRAPHY
REFERENCES
[1] Shreya S. Bhanose, Kalyani A. Bogawar (2016) “Crop And Yield Prediction Model”,
International Journal of Advance Scientific Research and Engineering Trends, Volume
1,Issue 1, April 2016
[2] Tripathy, A. K., et al.(2011) "Data mining and wireless sensor network for agriculture
pest/disease predictions." Information and Communication Technologies (WICT), 2011
World Congress on. IEEE.
[3] Ramesh Babu Palepu (2017) ” An Analysis of Agricultural Soils by using Data Mining
Techniques”, International Journal of Engineering Science and Computing, Volume 7 Issue
No.
10 October.
[4] Rajeswari and K. Arunesh (2016) “Analysing Soil Data using Data Mining Classification
Techniques”, Indian Journal of Science and Technology, Volume 9, May.
[5] A.Swarupa Rani (2017), “The Impact of Data Analytics in Crop Management based on
Weather Conditions”, International Journal of Engineering Technology Science and
Research, Volume 4,Issue 5,May.
[6] Pritam Bose, Nikola K. Kasabov (2016), “Spiking Neural Networks for Crop Yield
Estimation
Based on Spatiotemporal Analysis of Image Time Series”, IEEE Transactions On Geoscience And
Remote Sensing.
26
[7] Priyanka P.Chandak (2017),” Smart Farming System Using Data Mining”, International
Journal of Applied Engineering Research, Volume 12, Number 11.
[8] Vikas Kumar, Vishal Dave (2013), “KrishiMantra: Agricultural Recommendation System”,
Proceedings of the 3rd ACM Symposium on Computing for Development, January.
[9] Savae Latu (2009), ”Sustainable Development : The Role Of Gis And Visualisation”, The
Electronic Journal on Information Systems in Developing Countries, EJISDC 38, 5, 1-17.
[10] Nasrin Fathima.G (2014), “Agriculture Crop Pattern Using Data Mining Techniques”,
International Journal of Advanced Research in Computer Science and Software
Engineering, Volume 4, May.
[11] Ramesh A.Medar (2014), ”A Survey on Data Mining Techniques for Crop Yield
Prediction”, International Journal of Advance Research in Computer Science and
Management Studies, Volume 2, Issue 9, September.
[12] Shakil Ahamed.A.T.M, Navid Tanzeem Mahmood (2015),” Applying data mining
techniques to predict annual yield of major crops and recommend planting different crops
in different districts in Bangladesh”, ACIS 16th International Conference on Software
Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing
(SNPD),IEEE,June.
27
APPENDICES
28
B. SAMPLE CODING
import numpy as np
import pandas as pd
import os
import librosa
import numpy as np
import pandas as pd
app = Flask(__name__)
final = pd.read_pickle("extracted_df.pkl")
y = np.array(final["name"].tolist())
le = LabelEncoder()
le.fit_transform(y)
Model1_ANN = load_model("Model1.h5")
def extract_feature(audio_path):
return np.array([feature_scaled])
def ANN_print_prediction(audio_path):
prediction_feature = extract_feature(audio_path)
29
predicted_class = le.inverse_transform(predicted_vector)
return predicted_class[0]
@app.route("/")
@app.route("/first")
def first():
return render_template('first.html')
@app.route("/login")
def login():
return render_template('login.html')
@app.route("/index", methods=['GET'])
def index():
return render_template("index.html")
def get_output():
if request.method == 'POST':
audio_path = request.files['wavfile']
audio_path.save(img_path)
predict_result = ANN_print_prediction(img_path)
@app.route("/chart")
def chart():
return render_template('chart.html')
if __name__ =='__main__':
app.run(debug = True)
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
30
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Automated Bird Species Identification using Audio Signal Processing and Neural Network </title>
<link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&display=swap"
rel="stylesheet">
<!--
https://templatemo.com/tm-575-leadership-event
-->
</head>
<body>
<div class="container">
<span class="navbar-toggler-icon"></span>
</button>
</a>
31
<ul class="navbar-nav ms-auto">
<li class="nav-item">
</li>
<li class="nav-item">
</li>
<li class="nav-item">
</li>
<li class="nav-item">
</li>
</ul>
<div>
</div>
</nav>
<main>
<div class="container">
<h2 class="text-white mb-4">Automated Bird Species Identification using Audio Signal Processing
and Neural Network <u class="text-info"></u></h2>
<p class="text-white"></p>
</div>
</div>
32
</div>
</div>
</section>
<div class="container">
<div class="row">
<div class="row">
<div class="col-sm-12">
<center><h3 class="title-a">
Graph
</h3></center>
<body>
<!-- To configure the contact form email address, go to mail/contact_me.php and update the email
address in the PHP file on line 19. --
</br>
</br>
</div>
<br>
<br>
<br>
<!-- To configure the contact form email address, go to mail/contact_me.php and update the email
address in the PHP
33
</br>
</br>
</div>
</body>
</div>
</div>
</div>
</div>
</div>
</section>
<footer class="site-footer">
<div class="container">
<div class="d-flex">
</div>
</div>
</div>
</div>
</div>
</div>
</footer>
<script src="../static/js/jquery.min.js"></script>
<script src="../static/js/bootstrap.min.js"></script>
34
<script src="../static/js/jquery.sticky.js"></script>
<script src="../static/js/click-scroll.js"></script>
<script src="../static/js/custom.js"></script>
</body>
</html>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Automated Bird Species Identification using Audio Signal Processing and Neural Network </title>
<link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&display=swap"
rel="stylesheet">
<!--
https://templatemo.com/tm-575-leadership-event
-->
</head>
<body>
35
<div class="container">
<span class="navbar-toggler-icon"></span>
</button>
</a>
<li class="nav-item">
</li>
<li class="nav-item">
</li>
</ul>
<div>
</div>
</nav>
<main>
<div class="container">
<div class="row">
<div class="hero-text">
36
<h1 class="text-white mb-4"><u class="text-info"></u> Automated Bird Species Identification
using Audio Signal Processing and Neural Network </h1>
</div>
</div>
</div>
</div>
<div class="video-wrap">
</video>
</div>
</section>
<section class="highlight">
<div class="container">
<div class="row">
<div class="highlight-thumb">
<img src="../static/images/highlight/alexandre-pellaes-6vAjp0pscX0-unsplash.jpg"
class="highlight-image img-fluid" alt="">
<div class="highlight-info">
<h3 class="highlight-title"></h3>
</div>
</div>
</div>
<div class="highlight-thumb">
<img src="../static/images/highlight/miguel-henriques--8atMWER8bI-unsplash.jpg"
class="highlight-image img-fluid" alt="">
<div class="highlight-info">
<h3 class="highlight-title"></h3>
37
</div>
</div>
</div>
<div class="highlight-thumb">
<div class="highlight-info">
<h3 class="highlight-title"></h3>
</div>
</div>
</div>
</div>
</div>
</section>
<footer class="site-footer">
<div class="container">
<div class="d-flex">
</div>
</div>
</div>
</div>
</div>
</div>
</footer>
38
<!-- JAVASCRIPT FILES -->
<script src="../static/js/jquery.min.js"></script>
<script src="../static/js/bootstrap.min.js"></script>
<script src="../static/js/jquery.sticky.js"></script>
<script src="../static/js/click-scroll.js"></script>
<script src="../static/js/custom.js"></script>
</body>
</html>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Automated Bird Species Identification using Audio Signal Processing and Neural Network </title>
<link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&display=swap"
rel="stylesheet">
<!--
https://templatemo.com/tm-575-leadership-event
-->
</head>
39
<body>
<div class="container">
<span class="navbar-toggler-icon"></span>
</button>
</a>
<li class="nav-item">
</li>
<li class="nav-item">
</li>
</ul>
<div>
</div>
</nav>
<main>
<div class="container">
<div class="row"
40
<form class="custom-form contact-form bg-white shadow-lg" action="/submit" method="POST"
enctype="multipart/form-data" >
<div class="row">
<head>
<script>
function previewImage() {
if (file.length > 0) {
document.getElementById("preview").setAttribute("src", event.target.result);
};
fileReader.readAsDataURL(file[0]);
</script>
</head>
<body>
<h3> </h3>
<div class="limiter">
<div class="wrap-login100">
<center><span class="login100-form-title-1">
</span></center>
</div>
41
</br>
</br>
<br>
</div>
</div>
<img id="preview">
<div class="container-login100-form-btn">
</br>
</br>
</div>
</div>
</div>
</div>
</div>
</body>
</div>
</form>
</div>
</div>
</div>
</section>
</main>
<footer class="site-footer">
<div class="container">
42
<div class="row align-items-center">
<div class="d-flex">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</footer>
<script src="../static/js/jquery.min.js"></script>
<script src="../static/js/bootstrap.min.js"></script>
<script src="../static/js/jquery.sticky.js"></script>
<script src="../static/js/click-scroll.js"></script>
<script src="../static/js/custom.js"></script>
</body>
</html>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
43
<meta name="author" content="">
<title>Automated Bird Species Identification using Audio Signal Processing and Neural Network </title>
<link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&display=swap"
rel="stylesheet">
<!--
https://templatemo.com/tm-575-leadership-event
-->
</head>
<body>
<div class="container">
<span class="navbar-toggler-icon"></span>
</button>
</a>
44
<li class="nav-item">
</li>
<li class="nav-item">
</li>
</ul>
<div>
</div>
</nav>
<main>
<div class="container">
<h2 class="text-white mb-4"> Automated Bird Species Identification using Audio Signal Processing
and Neural Network <u class="text-info"></u></h2>
<p class="text-white"></p>
</div>
</div>
</div>
</div>
</section>
<div class="container">
<div class="row">
45
<h2>Login <u class="text-info"></u></h2>
</div>
<script>
addEventListener("load", function () {
setTimeout(hideURLbar, 0);
}, false);
function hideURLbar() {
window.scrollTo(0, 1);
function login(){
alert("Login Success!");
window.location = "{{url_for('index')}}";
return false;
else
alert("Invalid Credentials!")
</script>
</head>
<body id="page-top">
<br>
46
<br>
<div class="row">
<div class="section-title">
</div>
<div class="control-group">
<div class="controls">
</div>
</div>
</br>
<div class="control-group">
<!-- Password-->
<div class="controls">
</div>
</div>
<div class="control-group">
<br>
<div class="controls">
47
</div>
</div>
</div>
</div>
</div>
</section>
</body>
</div>
</div>
</section>
<footer class="site-footer">
<div class="container">
<div class="d-flex">
</div>
</div>
</div>
</div>
</div>
</div>
</footer>
<script src="../static/js/jquery.min.js"></script>
<script src="../static/js/bootstrap.min.js"></script>
<script src="../static/js/jquery.sticky.js"></script>
<script src="../static/js/click-scroll.js"></script>
48
<script src="../static/js/custom.js"></script>
</body>
</html>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Automated Bird Species Identification using Audio Signal Processing and Neural Network </title>
<link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&display=swap"
rel="stylesheet">
<!--
https://templatemo.com/tm-575-leadership-event
-->
</head>
<body>
<div class="container">
49
<span class="navbar-toggler-icon"></span>
</button>
</a>
<li class="nav-item">
</li>
<li class="nav-item">
</li>
<li class="nav-item">
</li>
<li class="nav-item">
</li>
</ul>
<div>
</div>
</nav>
<main>
<div class="container">
<div class="row">
50
<div class="col-lg-8 col-12 mx-auto">
<h2>Prediction</h2>
<div class="row">
<center>
<center><h3 class="title-a">
</h3> </center>
</br>
</br>
<head>
</head>
<div style="margin-left:150px">
<body>
</div>
<div class="content
<div class="col-lg-12">
">
{% if prediction %}
</audio></div>
</br>
</br>
51
{% endif %}
</div>
</body> </div>
</div>
</center> </div>
</form>
</div>
</div>
</div>
</section>
</main>
<footer class="site-footer">
<div class="container">
<div class="d-flex">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</footer>
52
<script src="../static/js/jquery.min.js"></script>
<script src="../static/js/bootstrap.min.js"></script>
<script src="../static/js/jquery.sticky.js"></script>
<script src="../static/js/click-scroll.js"></script>
<script src="../static/js/custom.js"></script>
</body>
</html>
53
C. SAMPLE INPUT
54
55
56
57
58
59
60
61
62
63
D. SAMPLE OUTPUT
64